zoukankan      html  css  js  c++  java
  • [LeetCode] 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,f[i][j] = min(f[i-1][j], f[i][j-1]) + a[i][j]

     1 class Solution {
     2 private:
     3     int f[1000][1000];
     4 public:
     5     int minPathSum(vector<vector<int> > &grid) {
     6         // Start typing your C/C++ solution below
     7         // DO NOT write int main() function
     8         if (grid.size() == 0 || grid[0].size() == 0)
     9             return 0;
    10             
    11         f[0][0] = grid[0][0];
    12         
    13         for(int i = 1; i < grid.size(); i++)
    14             f[i][0] = f[i-1][0] + grid[i][0];
    15             
    16         for(int i = 1; i < grid[0].size(); i++)
    17             f[0][i] = f[0][i-1] + grid[0][i];
    18             
    19         for(int i = 1; i < grid.size(); i++)
    20             for(int j = 1; j < grid[0].size(); j++)
    21                 f[i][j] = min(f[i-1][j], f[i][j-1]) + grid[i][j];
    22                 
    23         return f[grid.size()-1][grid[0].size()-1];
    24     }
    25 };
  • 相关阅读:
    Periodic Strings ( UVA
    Digit Counting ( UVA
    Molar mass ( UVA
    Score ( UVA
    Let the Balloon Rise (STL)
    Tree Recovery (STL)
    安卓simpleadapter问题
    安卓活跃手指问题
    python 问题记录
    设计模式笔记
  • 原文地址:https://www.cnblogs.com/chkkch/p/2767539.html
Copyright © 2011-2022 走看看