leetcode64 最小路径和

举报
兔老大 发表于 2021/04/23 00:05:54 2021/04/23
【摘要】 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [   [1,3,1],   [1,5,1],   [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 &n...

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

示例:

输入:
[
  [1,3,1],
  [1,5,1],
  [4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。

 

思路:

grid[i][j]更新为走到grid[i][j]的最小代价。

只能从左边走过来,或者从上边走过来,答案为两种情况中较小的加上本身。

注意:初始化,第一行第一列只有一种方法走过来。


  
  1. class Solution {
  2. public int minPathSum(int[][] grid) {
  3. int len1=grid.length;
  4. int len2=grid[0].length;
  5. int i,j;
  6. for(i=1;i<len1;++i)grid[i][0]+=grid[i-1][0];
  7. for(i=1;i<len2;++i)grid[0][i]+=grid[0][i-1];
  8. for(i=1;i<len1;++i)
  9. for(j=1;j<len2;++j)
  10. grid[i][j]+=Math.min(grid[i-1][j],grid[i][j-1]);
  11. return grid[len1-1][len2-1];
  12. }
  13. }

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/103245662

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。