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

C++算法动态规划3

第 5 题 三角形顶部到底部的最小路径和

int minimumTotal(vector<vector<int>> &triangle)

题目描述
给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字,
例如,给出的三角形如下:

[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
]
最小的从顶部到底部的路径和是 2 + 3 + 5 + 1 = 11。
注意:
如果你能只用 O(N)的额外的空间来完成这项工作的话,就可以得到附加分,其中 N 是三角形中的行总数。

自顶向下求解

#include <bits/stdc++.h>
using namespace std;
int minimumTotal(vector<vector<int>> &triangle) {//矩阵构造完成初始化 F(0,0)=triangle[0][0];vector<vector<int>> minPathSum(triangle);//矩阵的行数int row=triangle.size();for(int i=1; i<row; i++) {for(int j=0; j<=i; j++) {// F(i,0)if(j==0)minPathSum[i][j]=minPathSum[i-1][j]+triangle[i][0];// F(i,j)else if(j==i)minPathSum[i][j]=minPathSum[i-1][j-1]+triangle[i][0];// F(i,i)elseminPathSum[i][j]=min(minPathSum[i-1][j],minPathSum[i-1][j-1])+triangle[i][j];}}//min(F(row-1,j)int ret=minPathSum[row-1][0];for(int i=1; i<row; i++)ret=min(ret,minPathSum[row-1][i]);return ret;
}
int main() {vector<vector<int>> triangle = {{2},{3, 4},{6, 5, 7},{4, 1, 8, 3}};cout<<minimumTotal(triangle);return 0;
}

自底向上求解

 

#include <bits/stdc++.h>
using namespace std;
int minimumTotal(vector<vector<int>> &triangle) {//矩阵构造完成初始化 F(row-1,j)=triangle[row-1][j];vector<vector<int>> minPathSum(triangle);//矩阵的行数int row=triangle.size();//从最后一行开始向上推导 for(int i=row-2; i>=0; i--) {for(int j=0; j<=i; j++) {minPathSum[i][j]=min(minPathSum[i+1][j],minPathSum[i+1][j+1])+triangle[i][j];}}return minPathSum[0][0];
}
int main() {vector<vector<int>> triangle = {{2},{3, 4},{6, 5, 7},{4, 1, 8, 3}};cout<<minimumTotal(triangle);return 0;
}

相关文章:

  • 初识结构体,整型提升及操作符的属性
  • 仿射变换、根据特征点进行仿射变换
  • MultipartFile
  • 【Linux】ls 命令详解及使用示例:列出目录中的内容
  • 向量压缩方法全解析:从线性插值到小波压缩
  • spring重试机制
  • [IMX][UBoot] 01.UBoot 常用命令
  • MPO接口型光模块的失效检测
  • 进一步探究synchronized
  • 智能生成完整 Java 后端架构,告别手动编写 ControllerServiceDao
  • Langgraph实战--在Agent中加入人工反馈
  • 区分viewmodel和model职责的方法
  • C++-std::async与std::future基本使用
  • 使用 CMake 管理库版本号(VERSION 和 SOVERSION)
  • Canal详解
  • 使用 XState 状态机打造英语单词学习界面(demo)
  • 对象存储Ozone EC应用和优化
  • 多电流传感器电流检测方法多电流传感器电流检测方法
  • 图片转Latex软件
  • HarmonyOS运动语音开发:如何让运动开始时的语音播报更温暖
  • 芜湖市建设工程网站维护公告/北京网站seo技术厂家
  • 做弹幕网站/今日油价92汽油价格表
  • 网站qq交谈怎么做的/合肥seo
  • 最低成本做企业网站 白之家/google play商店
  • 宜昌网站建设厂家/网络营销师是做什么的
  • 网站建设遇到哪些攻击/直通车推广技巧