64 - Minimum Path Sum 最小路径和

news/2024/9/21 17:52:43

64 - 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.

解释:
给定m*n 的矩阵,里面都是非负整数,找到一条从左上角到右下角的路径,使得其和最小。每一次移动只能向右或者向下移动

案例:

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

给定如上数组,可以明确知道从左上到右下的最小路径和为图中黄色图形

基本思想

二维动态规划问题,假设grid数组 m行,n列。构建同等大小的数组dp

\(dp[i][j]\) : 表示 由 [0,0] 位置 到 [i,j] 位置的最小路径和,由于只能向下或者向右移动,故 \(dp[i][j]\) 更新公式如下:

\(dp[i][j]\) = min( \(dp[i-1][j]\), \(dp[i][j-1]\)) + \(grid[i][j]\)

时间复杂度,空间复杂度都为\(o(n^2)\)

代码

C++

    int minPathSum(vector<vector<int>>& grid) {int m = grid.size();if(m<=0) return 0;int n = grid[0].size();if(n<=0) return 0;vector<vector<int>> dp(m, vector<int>(n,0));//1-初始化dp[0][0] = grid[0][0];for(int i=1;i<m;++i) {dp[i][0] = grid[i][0] + dp[i-1][0];}for(int i=1;i<n;++i) {dp[0][i] = dp[0][i-1] + grid[0][i];}for(int i=1;i<m;++i) {for(int j=1;j<n;++j) {dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j];}}return dp[m-1][n-1];}

python

    def minPathSum(self, grid: List[List[int]]) -> int:m = len(grid)if m <= 0: return 0n = len(grid[0])if n <= 0: return 0dp = [[0 for j in range(n)] for i in range(m)]dp[0][0] = grid[0][0]for i in range(1, m):dp[i][0] = dp[i-1][0] + grid[i][0]for i in range(1, n):dp[0][i] = dp[0][i-1] + grid[0][i]for i in range(1, m):for j in range(1, n):dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j];return dp[m-1][n-1]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31614.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Mura CMS processAsyncObject SQL注入漏洞

Mura CMS processAsyncObject SQL注入漏洞 漏洞描述 该漏洞允许攻击者在某些API请求中注入恶意SQL代码,来访问或修改数据库信息,甚至可能获得对系统的完全控制,主要危害包括未授权访问敏感数据以及可能对系统完整性造成的损害 Fofa: body="Powered by Mura CMS" …

Unraid 使用 Docker Compose 安装 Immich 套件无法启用人脸识别的原因及修复方法

原因 问题原因是官方教程中的 docker-compose.yml 指明的机器学习组件 immich-machine-learning 中的 container_name 也就是 docker-compose.yml 中不同 service 可以互访的媒介 hostname 与 immich-server 默认设置中的机器学习服务器 url 的 hostname 不匹配造成的。 解决方…

AtCoder Regular Contest 177

AtCoder Regular Contest 177 A-Exchange 问题陈述 判断 \(n\) 个价格分别为 \(x_i\) 的商品,问能否通过有限数量的 \(1\) 元, \(5\) 元, \(10\) 元, \(50\) 元, \(100\) 元, \(500\) 元,购买。 思路 贪心。 每个商品从 \(500\) 元开始,能用就尽量用。如果中间某个商品…

RediSearch的简单使用与总结

前言 之前就有考虑过想要研究下RediSearch,号称高性能全文索引的功能,这几天闲来无事调研了一番。 RediSearch 介绍 RediSearch 是 Redis Labs 提供的一款强大且高效的搜索和全文索引引擎。它是一个基于 Redis 的模块,允许用户在 Redis 数据库中进行复杂的搜索和全文检索操作…

ShowDoc:打造IT团队高效协作的文档与API管理神器

ShowDoc IT团队高效协作的文档与API管理介绍 ShowDoc:一款适用于IT团队的知识文档与API管理工具 ShowDoc 是一款专为IT团队设计的知识文档和API管理工具,它允许用户通过Markdown语法轻松地创建和编辑美观的API文档、数据字典文档、技术文档,甚至在线Excel文档。ShowDoc支持多…

广东各高校2023/2022/2021近三年录取分数线(excel文件下载)

为了帮助考生更好地进行志愿填报,更好的对数据筛选,故整理 广东各高校2023/2022/2021三年录取分数excel文件, 部分数据及文件见下图, 数据根据历年录取分数线汇总,仅供参考, 详细请登陆各高校网站查询。 如有需要,可根据步骤下载文件:文件列表及数据如下图所示,真实有…

【论文笔记-44~】多语言实体链接

~2011 1. Cross-Language Entity Linking 文章核心观点: 本文介绍了一种新的跨语言实体链接任务,旨在将不同语言的文档中的命名实体与英文知识库中的实体描述进行匹配。作者提出了一种利用统计音译和跨语言信息检索的方法来解决这一任务,并在21种语言上进行了实验验证。实验…

鸿蒙HarmonyOS实战-Stage模型(UIAbility组件)

🚀一、UIAbility组件 🔎1.概述 HarmonyOS中的Stage模型是一种基于UIAbility组件的应用程序架构。UIAbility是HarmonyOS系统中用于构建用户界面的基本组件之一。它负责处理应用程序界面的显示和交互。 在Stage模型中,每个应用程序都有一个或多个Stage。Stage是一个独立的界…