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

931、下降路径最小和

题目:

 

解答:

按照行遍历,dp即可。定义dp[i][j]为(i,j)位置的最小路径。

初始化:第一行直接塞入dp[0][j]。

遍历:最左边、最右边的可行路径为两种,中间n-2个数的可行路径为三种。一共三种情况,分开讨论即可。遍历到n-1行。

优化空间,dp[0][j]存储上一行,dp[1][j]存储当前行,本行计算完成后dp[0][j]=dp[1][j]

最后遍历最后一行,寻找最小值即可。ans=100*n是一个最大值,只要足够大即可。

class Solution {
public:int minFallingPathSum(vector<vector<int>>& matrix) {int n = matrix.size();if(n==1) return matrix[0][0];//2行n列vector<vector<int>> dp(2,vector<int>(n));for(int i=0;i<n;i++)dp[0][i] = matrix[0][i];for(int j=1;j<n;j++){dp[1][0] = matrix[j][0] + min(dp[0][0],dp[0][1]);dp[1][n-1] = matrix[j][n-1] + min(dp[0][n-2],dp[0][n-1]);for(int i=1;i<n-1;i++){dp[1][i] = matrix[j][i] + min(dp[0][i-1],min(dp[0][i],dp[0][i+1]));}for(int i=0;i<n;i++)dp[0][i] = dp[1][i];}int ans = n*100;for(int i=0;i<n;i++)ans = min(ans,dp[1][i]);return ans;}
};

时间复杂度O(n*n)

空间复杂度O(n)

http://www.lqws.cn/news/476173.html

相关文章:

  • 硬件面经-具身机器人通用技术要求
  • Flink SQL Connector Kafka 核心参数全解析与实战指南
  • vue3 el-table 行字体颜色 根据字段改变
  • Flink SourceFunction深度解析:数据输入的起点与奥秘
  • Flink作业三种部署模式:架构、配置与实战应用
  • C++主要知识点详解(引用,内联函数)
  • webpack+vite前端构建工具 - 8 代码分割
  • 生成器函数概念与用法详解
  • 【Clickhouse系列】增删改查:对比mysql
  • Clickhouse官方文档学习笔记
  • FastAPI 入门教程 #06:FastAPI 请求体和数据模型
  • 从零理解鱼眼相机的标定与矫正(含 OpenCV 代码与原理讲解)
  • PostgreSQL全栈部署指南:从零构建企业级高可用数据库集群
  • React Next快速搭建前后端全栈项目并部署至Vercel
  • 《DeepSeek原生应用与智能体开发实践》案例重现
  • 关于数学函数和数据类型扩展的详细讲解(从属GESP二级)
  • 30天pytorch从入门到熟练(day1)
  • Mybatis-Plus支持多种数据库
  • 【机器学习四大核心任务类型详解】分类、回归、聚类、降维智能决策指南
  • 多项目预算如何集中管控与动态调整
  • 将Linux装进口袋: Ubuntu to Go 制作
  • 【Linux】进程间多种通信方式对比
  • Typescript基础
  • 【后端】负载均衡
  • MiniMax-M1 开源,Kimi 深度研究内测,GPT-5 今夏发布,Gemini 2.5 稳定上线!| AI Weekly 6.16-22
  • 大模型MetaGPT面试题汇总及参考答案
  • Python-break、continue与else语句
  • OJ搭建:Judge0服务器、DeepSeek服务接入简介
  • 70、爬楼梯
  • 相机camera开发之差异对比核查四:测试机和对比机的Camera动态参数差异对比及关键字