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
  • 相关阅读:
    JAVA核心技术笔记总结--第14章 线程总结
    java核心技术笔记——第 9 章 集合
    Java核心技术笔记——第 8 章 泛型
    2.面向对象三大特征
    1.浅谈面向对象思想
    8.字符串
    7.数组
    6.调试程序
    5.流程控制语句
    4.运算符
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/3010656.html
Copyright © 2011-2022 走看看