zoukankan      html  css  js  c++  java
  • 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[i][j]=min{dp[i-1][j]+dp[i][j-1]}+table[i][j].

    当前位置的最小和等于左边和右边位置最小和两者的小者+本方格数值。

    代码:

    class Solution {
    public:
    //https://leetcode.com/problems/minimum-path-sum/
        int minPathSum(vector<vector<int> >& grid) {
            int m=grid.size(),n=grid[0].size();
            if(m==0||n==0){
                return 0;
            }
    //        int sum[m][n];
            for(int j=1;j<n;j++){
                grid[0][j]=grid[0][j-1]+grid[0][j];
            }
    
            for(int i=1;i<m;i++){
                grid[i][0]=grid[i-1][0]+grid[i][0];
            }
            for(int i=1;i<m;i++){
                for(int j=1;j<n;j++){
                    grid[i][j]=min(grid[i-1][j],grid[i][j-1])+grid[i][j];
                }
            }
    
            return grid[m-1][n-1];
        }
    };


  • 相关阅读:
    括号
    vue 框架原理
    Angular 1.x 框架原理
    ES5的数组方法
    js 对象细节
    《高性能网站建设进阶指南》笔记
    vue 运行时 + 编译器 vs. 只包含运行时
    vue-loader 细节
    vue 错误处理
    移动web touch事件
  • 原文地址:https://www.cnblogs.com/jsrgfjz/p/8519881.html
Copyright © 2011-2022 走看看