`
huntfor
  • 浏览: 201289 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[leetcode]Minimum Path Sum

 
阅读更多

Minimum Path Sum

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.

 很简单的DP问题,只要看下DP的经典例题,转配线调度问题之后,这道题就很简单了。

题中说道只能向下或者向右走,因此到终点[m][n]要么从上面[m][n - 1]走下来,要么从左边[m - 1][n]走过来,看这两条路那条更短,如果上面的短,那么[m][n - 1]当做终点。继续做这样的操作(因为本题目满足最优子结构)

 

    public int minPathSum(int[][] grid) {
		if(grid == null){
			return 0;
		}
		int row = grid.length;
		int column = grid[0].length;
		int max = row > column ? row : column;
		int min = row + column - max;
		int[][] result = new int[row][column];
		result[0][0] = grid[0][0];
		int i = 1;
		for(; i < max; i++){
			if(i < row){
				result[i][0] = result[i - 1][0] + grid[i][0];
			 }
			if(i < column){
				result[0][i] = result[0][i - 1] + grid[0][i];
			}
		}
		
		for(i = 1; i < row; i++){
			for(int j = 1; j < column; j++){
				result[i][j] = grid[i][j] + (result[i][j - 1] > result[i - 1][j] ?  result[i - 1][j] : result[i][j - 1]); 
			}
		}
		return result[row - 1][column - 1];
	}

 

分享到:
评论

相关推荐

    js-leetcode题解之64-minimum-path-sum.js

    javascript js_leetcode题解之64-minimum-path-sum.js

    javalruleetcode-LeetCode::lollipop:个人LeetCode习题解答仓库-多语言

    java lru leetcode :ice_cream: LeetCode Kindem 的个人 LeetCode 题解仓库,欢迎交流学习。 下面的目录中 $number 题号代表经典 LeetCode 题目,$number.$number ...LeetCode ...Sum ...Sum ...Sum ...Minimum Path Sum 73

    LeetCode最全代码

    371 | [Sum of Two Integers](https://leetcode.com/problems/sum-of-two-integers/) | [C++](./C++/sum-of-two-integers.cpp) [Python](./Python/sum-of-two-integers.py) | _O(1)_ | _O(1)_ | Easy | LintCode | ...

    leetcode分类-LeetCode:力码

    Minimum Path Sum Unique Paths Unique Paths II Longest Palindromic Substring Interleaving String Triangle Distinct Subsequences Decode Ways Palindrome Partitioning II Maximal Rectangle ###Recursion N-...

    Leetcode book刷题必备

    31. Binary Tree Maximum Path Sum:二叉树中的最大路径和。 32. Binary Tree Upside Down:将一个二叉树进行翻转。 【位操作】 33. Single Number:找出数组中唯一不出现一次的数字。 34. Single Number II:找出...

    Leetcode题目+解析+思路+答案.pdf

    - **Path Sum II**:寻找所有从根节点到叶节点的路径,其路径和等于给定的目标值。 - **Flatten Binary Tree to Linked List**:将二叉树展平为单链表。 - **Validate Binary Search Tree**:验证一个二叉树是否...

    _leetcode-python.pdf

    - Minimum Path Sum: 在一个m×n的网格中,找到从左上角到右下角的路径,使得路径上的数字总和最小。 - Plus One: 给定一个由整数组成的非空数组,表示一个非负整数,将这个整数加一。 - Add Binary: 给定两个二进制...

    leetcode-常见考题2.pdf

    - 在 JumpGame 和 MinimumPathSum 题目中,动态规划用于找出跳跃游戏或路径选择中达到最优解的策略。 4. **堆栈**: - 堆栈数据结构可以用于处理与括号匹配、表达式求值等相关的题目。 - 在 ...

    gasstationleetcode-leetcode:LeetcodeOJ解决方案

    leetcode 【演示记录】 报告 展示 2017/03/06 1.二和,167.二和二 2107/03/06 15.3 总和,16.3 总和最近,18.4 总和,11.最多水的容器 2017/03/09 62.Unique Paths, 63.Unique Paths II, 64.Minimum Path Sum 2017/...

    leetcode常见的100热点算法题

    8. **栈与队列**:"Valid Parentheses"(有效括号)和"Minimum Size Subarray Sum"(最小覆盖子数组)这类题目会用到栈和队列的特性来处理问题。 9. **位操作**:位操作是计算机科学的基础,题目如"Number of 1 ...

    Anfany#LeetCode_Python3_Solution#64 最小路径和1

    二、Python3程序64_Minimum_Path_Sum 最小路径和# 利用动态规划的方法# 要到达索引为[r,l]的网格# 一是从[r,l-1]的网格向右

    javascript-leetcode面试题解动态规划问题之第931题下降路径最小和-题解.zip

    本题解关注的是第931题,即“下降路径最小和”(Minimum Falling Path Sum),这是一个典型的动态规划问题,对求职面试中的算法能力考察具有重要意义。 动态规划是一种解决复杂问题的有效方法,它通过将大问题分解...

    Leetcode:LeetCode 刷题总结

    7. **图论**:图论问题涉及节点和边的连接,如"最短路径"(Shortest Path)或"最小生成树"(Minimum Spanning Tree)。 8. **排序与查找**:快速排序、归并排序、二分查找等经典算法在LeetCode中也有体现,例如"三...

    leetcode:leetcode练习

    - 图的遍历和最短路径问题如“最短路径问题”(Shortest Path in Graph)和“最小生成树”(Minimum Spanning Tree),常常涉及到深度优先搜索(DFS)和广度优先搜索(BFS)。C++的邻接矩阵或邻接表可以表示图结构...

    LeetCode:LeetCode上一些算法的解答

    9. **图算法**:图问题如"最短路径"(Shortest Path)和"最小生成树"(Minimum Spanning Tree),通常涉及深度优先搜索(DFS)或广度优先搜索(BFS)。 这个"LeetCode-master"压缩包很可能是包含了针对以上各种问题...

    LeetCodeTop100:LeetCode的前100个问题

    - **数组**:数组是最基本的数据结构,LeetCode中的数组问题涉及排序、查找、子数组等,如"两数之和"(Two Sum)。 - **链表**:链表操作问题,如"反转链表"(Reverse Linked List)和"合并两个有序链表"(Merge ...

    基础班7、8节作业1

    5. 最小路径和:这是一个典型的二维数组动态规划问题,LeetCode的第15 minimum path sum题目。目标是从左上角到右下角找到经过的所有单元格的最小和,每次可以向右或向下移动。可以创建一个二维数组dp,dp[i][j]表示...

    leetcode:我对Leetcode问题的解决方案的集合

    6. **二叉树**:二叉树问题包括前序、中序、后序遍历、平衡二叉树等,如"二叉搜索树的最小绝对差"(Minimum Absolute Difference in BST),要求找到二叉搜索树中相邻节点的最大差值。 7. **图**:图的问题如"最短...

Global site tag (gtag.js) - Google Analytics