leetcode--笔记——120. 三角形最小路径和
120. 三角形最小路径和
给定一个三角形 triangle ,找出自顶向下的最小路径和。
输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]
输出:11
解释:如下面简图所示:23 46 5 7
4 1 8 3
自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。
class Solution {public:int minimumTotal(vector<vector<int>>& triangle) {int n=triangle.size();vector<vector<int>> f(n,vector<int>(n));f[0][0]=triangle[0][0];for(int i=1;i<n;++i){f[i][0]=f[i-1][0]+triangle[i][0];for(int j=1;j<i;j++){f[i][j]=min(f[i-1][j-1],f[i-1][j])+triangle[i][j];}f[i][i]=f[i-1][i-1]+triangle[i][i];}return *min_element(f[n - 1].begin(), f[n - 1].end());}
};
空间优化
因为i行只与i-1行有关,故只需要2n存储空间即可,即O(n);
class Solution {public:int minimumTotal(vector<vector<int>>& triangle) {int n=triangle.size();//vector<vector<int>> f(n,vector<int>(n));vector<int> f(n,0);vector<int> m(n,0);f[0]=triangle[0][0];for(int i=1;i<n;++i){m[0]=f[0]+triangle[i][0];for(int j=1;j<i;j++){m[j]=min(f[j-1],f[j])+triangle[i][j];}m[i]=f[i-1]+triangle[i][i];f=m;//f.assign(m.begin(),m.end());}return *min_element(f.begin(), f.end());}
};
leetcode--笔记——120. 三角形最小路径和相关推荐
- leetcode - 120. 三角形最小路径和
120. 三角形最小路径和 ------------------------------------------ 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如 ...
- Leetcode 120. 三角形最小路径和 (每日一题 20210927)
给定一个三角形 triangle ,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上.相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点 ...
- LeetCode 120. 三角形最小路径和(动态规划)
题目描述 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...
- Leetcode 120. 三角形最小路径和 解题思路及C++实现
解题思路: 这是一个典型的动态规划问题,定义一个数组 dp,dp[i] (tmp[i]也是)表示到达当前行第 i 个元素的最小路径和. 所以只需要定义一个1维数组dp(n, 0),每循环遍历第 i ...
- 120. 三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点. 例如,给定三角 ...
- 【Java语言】力扣系列----120. 三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点. 例如,给定三角 ...
- LeetCode 120. 三角形最小路径和
思路: 从下(倒数第二行)往上开始计算,找到最先和之后,每一行的值重新赋值,直到最顶层就是最小值了. public int minimumTotal(List<List<Integer&g ...
- leetcode算法题--三角形最小路径和
原题链接:https://leetcode-cn.com/problems/triangle/ 动态规划 dp[i][j]表示根结点到结点(i,j)的路径上的最小和 状态转移 dp[i][j]=min ...
- 【LeetCode笔记】64. 最小路径和(Java、动态规划)
文章目录 题目描述 代码 & 题目描述 题目描述 动态规划,dp[][]都可以直接用grid[][].空间复杂度O(1) 代码 & 题目描述 dp[i[j] = grid[i][j] ...
最新文章
- Vue 项目上线优化
- Oh my God, Swagger API文档竟然可以这样写?
- 如何在Windows上使用Git创建一个可执行脚本?
- 图像处理之卷积---任意卷积核的快速实现
- 服务器物理链路,【交换机在江湖对接案例】配置堆叠系统对接NLB服务器群集示例(通过物理链路环回方法)...
- C++/C学习笔记(十一)——存储分配器和适配器
- 不再惧怕!二叉树结构相关算法总结 | 原力计划
- mysql-front5.1的注册码
- 流程图软件用哪款: Draw.io, 亿图图示, ProcessOn. 做最适合你的流程图
- 星空主题设计理念_「案例赏析」深邃星空理念:鲜为人知的独特标识设计
- 马克飞象自定义代码段风格
- 4.1EF Core
- 小学信息技术计算机教学反思,小学信息技术教学反思
- 基于MTCNN卷积神经网络的人脸识别
- 软件工程导论--设计工程
- 该知道的都知道 不知道的慢慢了解 正则表达式符号大全
- JavaScript(JS)的DOM对象(JS的Document对象)----什么是DOM对象?
- 体验搜狐PaaS平台搜狐云景-自动调度(Autoscale)
- 微软准备再次裁员2850人 一年之内完成
- 笔记本电脑dns服务器没有响应怎么办,华硕笔记本重装系统后dns服务器未响应怎么办?...
热门文章
- 拉开你和同龄人差距的,不是基因,不是努力,而是……
- MPB:中科院深圳先进院戴磊组小鼠粪便样本中16S拷贝数的定量检测
- R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战
- R语言广义线性模型函数GLM、R中有几种logistic回归扩展和变异、robust包中的glmRob函数鲁棒logistic回归、ms包中的lrm函数拟合序数逻辑回归
- R语言广义加性模型GAMs:可视化每个变量的样条函数、样条函数与变量与目标变量之间的平滑曲线比较、并进行多变量的归一化比较、测试广义线性加性模型GAMs在测试集上的表现(防止过拟合)
- R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集,而无需进行任何重采样或参数调优
- R语言dplyr包连接多个dataframe实战:使用left_join
- R语言dplyr包对数据进行超前或者之后处理(lead、lag)实战
- R语言aggregate函数数据聚合实战
- 分类(classification)是认知的基础、分类步骤及主要算法、分类与回归的区别、分类过程