zoukankan      html  css  js  c++  java
  • leetcode | Minimum Path Sum

    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.


    解析:
    本题是一个动态规划类型的题目,
    求 grid[0][0] 到 grid[rows-1][cols-1]的最小路径和
    设m[i][j]表示从grid[0][0]到grid[i][j]的最小路径和,那么

    • m[0][0] = grid[0][0];
    • m[0][j] = m[0][j-1] + grid[0][j];
    • m[i][0] = m[i-1][0] + grid[i][0];
    • m[i][j] = min(m[i-1][j], m[i][j-1]) + gird[i][j];

    由上述条件等式,easy写出动态规划的程序:

    class Solution {
    public:
        int minPathSum(vector<vector<int>>& grid) {
            int rows = grid.size();
            int cols = grid[0].size();
            int result = 0;
            if (rows == 0 || cols == 0)
                return 0;
            int** m = new int*[rows];
            for (int i = 0;i < rows; i++)
                m[i] = new int[cols];
            // 动态规划。从小问题迭代求解  
            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < cols; j++) {
                    if (i == 0 && j == 0) {
                        m[i][j] = grid[i][j];
                    } else if (i == 0) {
                        m[i][j] = m[i][j-1] + grid[i][j];
                    } else if (j == 0) {
                        m[i][j] = m[i-1][j] + grid[i][j];
                    } else {
                        m[i][j] = min(m[i-1][j], m[i][j-1]) + grid[i][j];
                    }
                }
            }
            result = m[rows-1][cols-1];
            for (int i = 0; i < rows; i++)
                delete m[i];
            delete m;
            m = NULL;
            return result;
        }
    };
  • 相关阅读:
    第 4 章 MySQL 安全管理
    第 3 章 MySQL 存储引擎简介
    第 2 章 MySQL 架构组成
    道教的【五行】学说
    【matlab】MTATLAB解线性方程组
    RPolar项目进度记录
    numpy和TensorFlow的函数
    卷积
    腾讯QQ空间超分辨率技术TSR
    混元桩
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7375397.html
Copyright © 2011-2022 走看看