题解 | #矩阵的最小路径和#

矩阵的最小路径和

https://www.nowcoder.com/practice/38ae72379d42471db1c537914b06d48e

只能向下或者向右走,就是所在点只能由左边或者前边的点走过来,

对于当前的点就有 dp[i][j]=a[i][j]+min(dp[i-1][j],dp[i][j-1])

考虑到i=1,j=1的情况,直接对dp[1][1]赋值并且循环时跳过他,同时考虑到在i=1或者j=1时可能会越界,对二维dp数组先进行描边,大概看下数据给一个比较大的数就行。

贴上我丑丑的代码

for(int i=0;i<=n+1;i++){//描边

        dp[i][0]=dp[i][m+1]=1e8;

        dp[0][i]=dp[n+1][i]=1e8;

    }

    for(int i=1;i<=n;i++){

        for(int j=1;j<=m;j++){

            cin>>a[i][j];

        }

    }

    dp[1][1]=a[1][1];

    for(int i=1;i<=n;++i){

        for(int j=1;j<=m;++j){

            if(i==1&&j==1continue;

            dp[i][j]=a[i][j]+min(dp[i-1][j],dp[i][j-1]);

        }

    }

全部评论

相关推荐

三轮业务+一轮HR&nbsp;俺有点没招了。。。
此刻我身在乌云中:hr打电话问我能不能提前实习,我说不可以,然后他说那可能要横向排序等结果。结果五分钟立马挂了
点赞 评论 收藏
分享
08-21 16:35
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务