zoukankan      html  css  js  c++  java
  • #Leetcode# 64. Minimum Path Sum

    https://leetcode.com/problems/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.

    Example:

    Input:
    [
      [1,3,1],
      [1,5,1],
      [4,2,1]
    ]
    Output: 7
    Explanation: Because the path 1→3→1→1→1 minimizes the sum.

    代码:

    class Solution {
    public:
        int minPathSum(vector<vector<int>>& grid) {
            int n = grid.size(), m = grid[0].size();
            int dp[n][m];
            dp[0][0] = grid[0][0];
            for(int i = 1; i < n; i ++) dp[i][0] = grid[i][0] + dp[i - 1][0];
            for(int i = 1; i < m; i ++) dp[0][i] = grid[0][i] + dp[0][i - 1];
            
            for(int i = 1; i < n; i ++) {
                for(int j = 1; j < m; j ++)
                    dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
            }
            
            return dp[n - 1][m - 1];
        }
    };
    

      第一个自己想的比较明白的 $dp$ 刚开始很久都没维护好初始的状态 以后要注意辣!

  • 相关阅读:
    C#进阶-Linq-join
    C#进阶-Linq
    C#-string-stringBuilder
    C#-继承-多态
    Spring基础
    JQuery基本操作
    Oracle数据库基础操作
    AJAX前端后端
    AJAX异步提交(前端)
    js基本操作
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10012967.html
Copyright © 2011-2022 走看看