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

2023-08-10力扣每日一题

链接:

1289. 下降路径最小和 II

题意:

每一行选择一个数字,相邻行选择不能是同一列,求选择的数字和最小是多少

解:

每一行选择最小的次小的,下一行能加最小的(列坐标不冲突)就加最小的,不然就加次小的

虽然写的丑陋了点,但是至少是O(n^2),蛤蛤

实际代码:

#include<bits/stdc++.h>
using namespace std;
int minFallingPathSum(vector<vector<int>>& grid)
{vector<vector<int>>dp(grid);int lgrow=grid.size(),lgcol=grid[0].size();int Min=-1,MMin=-1;for(int j=0;j<lgcol;j++){if(Min==-1){Min=j;}else{if(dp[0][j]<dp[0][Min]){if(MMin==-1||dp[0][Min]<dp[0][MMin]) MMin=Min;Min=j;}else if(MMin==-1) MMin=j;else if(dp[0][j]<dp[0][MMin]) MMin=j;}}//cout<<Min<<" "<<MMin<<endl;for(int i=1;i<lgrow;i++){int nextMin=-1,nextMMin=-1;for(int j=0;j<lgcol;j++){if(j==Min) dp[i][j]+=dp[i-1][MMin];else dp[i][j]+=dp[i-1][Min];if(nextMin==-1){nextMin=j;}else{if(dp[i][j]<dp[i][nextMin]){if(nextMMin==-1||dp[i][nextMin]<dp[i][nextMMin]) nextMMin=nextMin;nextMin=j;}else if(nextMMin==-1) nextMMin=j;else if(dp[i][j]<dp[i][nextMMin]) nextMMin=j;}}Min=nextMin,MMin=nextMMin;//cout<<Min<<" "<<MMin<<endl;}int ret=INT_MAX;for(int i=0;i<lgrow;i++){ret=min(ret,dp[lgrow-1][i]);}return ret;
}
int main()
{int n;cin>>n;vector<vector<int>> grid;int temp;for(int i=0;i<n;i++){vector<int>t;for(int j=0;j<n;j++){cin>>temp;t.push_back(temp);}grid.push_back(t);}int ans=minFallingPathSum(grid);cout<<ans<<endl;return 0;
}

限制:

  • n == grid.length == grid[i].length
  • 1 <= n <= 200
  • -99 <= grid[i][j] <= 99
http://www.lryc.cn/news/119661.html

相关文章:

  • C#与halcon联合 缩放移动自适应图像
  • 推荐 4 个 yyds 的 GitHub 项目
  • chrome插件开发实例05-页面间通信
  • linux安装ftp
  • 前后端分离------后端创建笔记(上)
  • Java不可变集合详解
  • 常见的JavaScript日常问题
  • css modules的用法和在react项目中的应用
  • 【LangChain概念】了解语言链️:第2部分
  • 步入React前厅 - Css In React
  • OpenCV(三)——图像分割(二)
  • 28.Netty源码之缓存一致性协议
  • 造个轮子-任务调度执行小框架-任务清单执行恢复实现
  • 若依部署前后端
  • 2009年上半年 软件设计师 下午试卷
  • SpringBoot使用自定义事件监听器的demo
  • arcgis定义投影与投影
  • Flink多流处理之Broadcast(广播变量)
  • LVS/DR+Keepalived负载均衡实战(一)
  • 测试DWPose的onnx +Unity barracuda
  • 轻装上阵,不调用jar包,用C#写SM4加密算法【卸载IKVM 】
  • redis学习笔记(一)
  • 最优化问题 - 拉格朗日对偶
  • 关于ISO27701隐私信息安全管理体系介绍
  • C语言案例 分数列求和-11
  • Git 入门
  • PAT 1010 Radix
  • ruoyi-cloud微服务新建子模块
  • Dijkstra(求最短路)
  • React 脚手架