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

矩阵的最小路径和

https://www.nowcoder.com/practice/7d21b6be4c6b429bb92d219341c4f8bb

#include <cstdlib>
#include <iterator>
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param matrix int整型vector<vector<>> the matrix
     * @return int整型
     */
    int minPathSum(vector<vector<int> >& matrix) {
        // write code here
        int n = matrix.size();
        int m = matrix[0].size();
     vector<vector<int>> x(n, vector<int>(n));
        // x[0] = matr;

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if(i==0&&j==0){
                    x[i][j]=matrix[i][j];
                }

                else if (i == 0&&j!=0) {
                    x[i][j] = matrix[i][j] + x[i][j - 1];
                }
                else if (i!=0&&j == 0) {
                    x[i][j] = matrix[i][j] + x[i-1][j];
                }
                else {
                    x[i][j] = matrix[i][j] + min(x[i - 1][j], x[i][j-1]);
                }

            }
        }
        return x[n - 1][m - 1];
    }
};

只能向下或者向后 。 那么当前位置最短路径x【i,j】就是左一个位置或者上一个位置过来,选这两个位置上的最短路径加上matrix[i][j]。需要注意,当在边时,只有一种操作,需要注意,最短路径就是沿着另一方向的前一个位置的最短路径加上当前位置的值。当到起点时,那无路走,就是matrix[0][0];返回这样构建后的x的终点位置的值。

全部评论

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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