程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode | Minimum Path Sum

LeetCode | Minimum Path Sum

編輯:C++入門知識

題目

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.

分析

這題按題目意思一步一步做就是了,屬於不需要分析的動態規劃了,如果可以修改grid內元素,是不需要額外空間的。

代碼

public class MinimumPathSum {
	public int minPathSum(int[][] grid) {
		int M = grid.length;
		int N = grid[0].length;
		for (int j = 1; j < N; ++j) {
			grid[0][j] += grid[0][j - 1];
		}
		for (int i = 1; i < M; ++i) {
			grid[i][0] += grid[i - 1][0];
		}
		for (int i = 1; i < M; ++i) {
			for (int j = 1; j < N; ++j) {
				grid[i][j] += Math.min(grid[i - 1][j], grid[i][j - 1]);
			}
		}
		return grid[M - 1][N - 1];
	}
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved