当前位置: 首页 > news >正文

网站群 主要功能公司官网建设

网站群 主要功能,公司官网建设,深圳建设交易中心网站首页,公众号app下载【LetMeFly】1289.下降路径最小和 II#xff1a;通俗易懂地讲解O(n^2) O(1)的做法 力扣题目链接#xff1a;https://leetcode.cn/problems/minimum-falling-path-sum-ii/ 给你一个 n x n 整数矩阵 arr #xff0c;请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下…【LetMeFly】1289.下降路径最小和 II通俗易懂地讲解O(n^2) O(1)的做法 力扣题目链接https://leetcode.cn/problems/minimum-falling-path-sum-ii/ 给你一个 n x n 整数矩阵 arr 请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下降路径 定义为从 arr 数组中的每一行选择一个数字且按顺序选出来的数字中相邻数字不在原数组的同一列。 示例 1 输入arr [[1,2,3],[4,5,6],[7,8,9]] 输出13 解释 所有非零偏移下降路径包括 [1,5,9], [1,5,7], [1,6,7], [1,6,8], [2,4,8], [2,4,9], [2,6,7], [2,6,8], [3,4,8], [3,4,9], [3,5,7], [3,5,9] 下降路径中数字和最小的是 [1,5,7] 所以答案是 13 。示例 2 输入grid [[7]] 输出7提示 n grid.length grid[i].length1 n 200-99 grid[i][j] 99 方法一动态规划 这道题其实思路很简单 gird[i][j]来自gird[i - 1]的哪一个当然是gird[i - 1]中最小的那一个。如果grid[i - 1]中最小的那个元素恰好是j怎么办那么gird[i][j]就来自gird[i - 1]中第二小的那一个。 不难发现我们只关注上一行最小的两个元素的位置 具体实现 写一个函数findMin2(v)用来寻找数组v中最小的两个元素的位置。 用 i i i从第2行开始遍历地图grid 用 j j j遍历 g i r d [ i ] gird[i] gird[i] 如果 j j j等于上一行最小元素的下标 g r i d [ i ] [ j ] g r i d [ i − 1 ] [ 第二小元素的下标 ] grid[i][j] grid[i - 1][第二小元素的下标] grid[i][j]grid[i−1][第二小元素的下标]否则 g r i d [ i ] [ j ] g r i d [ i − 1 ] [ 最小元素的下标 ] grid[i][j] grid[i - 1][最小元素的下标] grid[i][j]grid[i−1][最小元素的下标] 最终返回最后一行的最小元素即可。 时间复杂度 O ( n 2 ) O(n^2) O(n2)其中 s i z e ( g i r d ) n × n size(gird) n\times n size(gird)n×n空间复杂度 O ( 1 ) O(1) O(1) AC代码 C class Solution { private:pairint, int findMin2(vectorint v) { // 只接收长度大于等于2的vpairint, int ans;int m v[0], loc 0;for (int i 0; i v.size(); i) {if (v[i] m) {m v[i], loc i;}}ans.first loc;loc ans.first ? 0 : 1, m v[loc]; // 如果第一个元素是最小的那么找第二个最小元素的时候就从上一行的第二个元素开始for (int i 0; i v.size(); i) {if (v[i] m i ! ans.first) {m v[i], loc i;}}ans.second loc;return ans;} public:int minFallingPathSum(vectorvectorint grid) {int n grid.size();for (int i 1; i n; i) {pairint, int last2min findMin2(grid[i - 1]); // i 1说明grid[i - 1].size() 2for (int j 0; j n; j) {grid[i][j] (j last2min.first ? grid[i - 1][last2min.second] : grid[i - 1][last2min.first]);}}return *min_element(grid.back().begin(), grid.back().end());} };Python # from typing import Listclass Solution:def findMin2(self, v: List[int]) - List[int]:ans [0, 0]m, loc v[0], 0for i in range(len(v)):if v[i] m:m, loc v[i], ians[0] locloc 0 if ans[0] else 1m v[loc]for i in range(len(v)):if v[i] m and i ! ans[0]:m, loc v[i], ians[1] locreturn ansdef minFallingPathSum(self, grid: List[List[int]]) - int:n len(grid)for i in range(1, n):last2min self.findMin2(grid[i - 1])for j in range(n):grid[i][j] grid[i - 1][last2min[0]] if j ! last2min[0] else grid[i - 1][last2min[1]]return min(grid[-1])同步发文于CSDN原创不易转载请附上原文链接哦~ Tisfyhttps://letmefly.blog.csdn.net/article/details/132201281
http://www.dnsts.com.cn/news/253160.html

相关文章:

  • 怀柔石家庄网站建设彩页设计多少钱
  • 公司网站后台模板广元建设厅官方网站
  • 我的文档上传到网站 做链接连云港网站建设费用
  • 如何填写网站建设计划表网站加载不出来是什么原因
  • ps做网站广告logo找竞价托管公司
  • 我要建网站需要什么花瓣网网站模板
  • 网站常见问题是什么企业名录是什么
  • 牡丹江商城网站开发设计网站推广联盟
  • 毕业设计做视频网站设计上海做网站seo
  • 酷炫flash网站可以做微积分的网站
  • 安徽建设工程造价信息网站网站没有在工信部备案
  • 在线网站免费网站入口台州城乡建设规划网站
  • 上海建站模板源码wordpress控制台地址
  • 网站建设用到什么学软件去哪个培训机构
  • 广州建设六马路小学网站北京的软件公司集中在哪个区
  • 织梦网站文章发布信息模板下载google 网站收录
  • 个人做网络推广哪个网站好网站的ip地址是什么
  • 单页网站怎么优化网站建设实用教程
  • 国外网站开发现状百度网站结构
  • 羊毛网站建设视频wordpress文库主题
  • 可以做多边形背景的网站装饰公司logo图标图片
  • 广告毕业设计作品网站沈阳软件定制开发公司
  • 建站平台外贸无锡做网站排名
  • 万州网站制作公司wordpress修改网站地址
  • 那个网站做二手买卖的网站备案成功后可以改吗
  • 越秀网站建设做好直播运营必备的五大能力
  • 四川建设厅网站 蒋wordpress免登录发文章
  • 让人做网站需要注意什么条件域名续费一般多少钱一年
  • 哪个网站有做视频转场的素材国内优秀网站案例
  • 扬中网站推广导流网站域名过期后续费多长时间生效