zoukankan      html  css  js  c++  java
  • LeetCode: Minimum Path Sum

    dp题,基本一次过

     1 class Solution {
     2 public:
     3     int minPathSum(vector<vector<int> > &grid) {
     4         // Start typing your C/C++ solution below
     5         // DO NOT write int main() function
     6         int m = grid.size();
     7         if (!m) return 0;
     8         int n = grid[0].size();
     9         if (!n) return 0;
    10         vector<vector<int>> f(m, vector<int>(n));
    11         f[0][0] = grid[0][0];
    12         for (int i = 1; i < m; i++) f[i][0] = f[i-1][0]+grid[i][0];
    13         for (int i = 1; i < n; i++) f[0][i] = f[0][i-1]+grid[0][i];
    14         for (int i = 1; i < m; i++) {
    15             for (int j = 1; j < n; j++) {
    16                 f[i][j] = min(f[i][j-1], f[i-1][j])+grid[i][j];
    17             }
    18         }
    19         return f[m-1][n-1];
    20     }
    21 };

     C#

     1 public class Solution {
     2     public int MinPathSum(int[,] grid) {
     3         int m = grid.GetLength(0);
     4         int n = grid.GetLength(1);
     5         if (m == 0 || n == 0) return 0;
     6         int[,] f = new int[m, n];
     7         f[0, 0] = grid[0, 0];
     8         for (int i = 1; i < m; i++) f[i, 0] = f[i-1, 0] + grid[i, 0];
     9         for (int i = 1; i < n; i++) f[0, i] = f[0, i-1] + grid[0, i];
    10         for (int i = 1; i < m; i++) {
    11             for (int j = 1; j < n; j++) {
    12                 f[i, j] = Math.Min(f[i, j-1], f[i-1, j]) + grid[i, j];
    13             }
    14         }
    15         return f[m-1, n-1];
    16     }
    17 }
    View Code
  • 相关阅读:
    黄金点游戏
    wc
    自动生成简单四则运算
    第三章 软件工程师的成长 案例分析
    Y2K问题
    我们自己写代码的时候,是否考虑到如何让代码容易于阅读和维护呢?
    关于软件工程师的思维误区问题
    JAVAEE 第七周
    JAVAEE 第六周
    JAVAEE 第五周
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/3010656.html
Copyright © 2011-2022 走看看