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 };
  • 相关阅读:
    css文档流
    gitolite搭建
    Packets out of order. Expected 1 received 27...
    前端常见跨域解决方案
    跨时代的分布式数据库 – 阿里云DRDS详解
    Redis持久化机制
    redis实现消息队列
    队列
    ide-helper
    Bitmap 位操作相关
  • 原文地址:https://www.cnblogs.com/chkkch/p/2767539.html
Copyright © 2011-2022 走看看