算法-------三角形最小路径和(Java版本)
题目
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3]
]
自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。
解决方法
class Solution {public int minimumTotal(List<List<Integer>> triangle) {// return sum;//使用递归 对于最顶层的三星形 最大值为顶角 加上 两个孩子当中的最大值//每一个子孩子的最大值 又等于下面两个孩子的最大值// fmax(A) = fmax(left) + fmax(right)//最小值也同理if (triangle == null || triangle.size() == 0) {return 0;}List<Integer> integers = triangle.get(0);if (integers == null || integers.size() == 0) {return 0;}int dp[][] =new int[triangle.size()][triangle.get(triangle.size()-1).size()];return integers.get(0) + miniIndex(1,triangle,0,dp);}public int miniIndex(int floor,List<List<Integer>> listList,int mCurIndex,int dp[][]){if (listList == null || floor >= listList.size()) {return 0;}if (dp[floor][mCurIndex] != 0) {return dp[floor][mCurIndex];}List<Integer> integers = listList.get(floor);int min = Math.min(integers.get(mCurIndex) + miniIndex(floor + 1, listList, mCurIndex, dp), integers.get(mCurIndex + 1) + miniIndex(floor + 1, listList, mCurIndex + 1, dp));dp[floor][mCurIndex] = min;return min;}
}
总结:
学习动态规划有一段时间了,终于会用动态规划解决问题了。这道题没有看题解,自己写出来的,自豪,加油~
算法的学习,我是从不会做,看题解,思考学习,然后去思考解决同类型问题,慢慢学。一道题长时间想不到怎么做,就不要耽误太长时间,像面试一样,不然根本做不到一天一道题的量,然后对自己学习也没有什么好处。
算法-------三角形最小路径和(Java版本)相关推荐
- Java 练习 1.三角形最小路径和 2.外出采摘的日本人 3.最大矩形
三角形最小路径和 给定一个三角形 triangle ,找出自顶向下的最小路径和. 每一步只能移动到下一行中相邻的结点上.相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 ...
- 算法:三角形最小路径和
题目 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [[2],[3,4],[6,5,7],[4,1,8,3] ] 1 2 3 4 5 6 自顶向 ...
- 动态规划之求解三角形最小路径问题
求解三角形最小路径问题 一.[问题描述]: 给定 高度为n的一个整数三角形,找出从顶部到底部的最小路径和,只能向先移动相邻的结点.首先输入n,接下来的1~n行,第i行输入i个整数,输出分为2行,第一行 ...
- leetcode--笔记——120. 三角形最小路径和
120. 三角形最小路径和 给定一个三角形 triangle ,找出自顶向下的最小路径和. 每一步只能移动到下一行中相邻的结点上.相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一 ...
- 《LeetCode力扣练习》第64题 最小路径和 Java
<LeetCode力扣练习>第64题 最小路径和 Java 一.资源 题目: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为 ...
- leetcode - 120. 三角形最小路径和
120. 三角形最小路径和 ------------------------------------------ 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如 ...
- 【Java语言】力扣系列----120. 三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点. 例如,给定三角 ...
- [Leetcode][第120题][JAVA][三角形最小路径和][动态规划][递归]
[问题描述][中等] [解答思路] 1. 动态规划思路一 自上而下 第 1 步:设计状态 f[i][j] 表示从三角形顶部走到位置 (i,j) 的最小路径和 位置(i,j) 指的是三角形中第 i 行第 ...
- Leetcode--120. 三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] ...
最新文章
- C#模糊查询绑定datagridview
- ubuntu10.0.4使用再生龙还原后在启动时不能正常启动
- Remove Duplicates from Sorted ListII
- C++STL的stack容器
- springboot配置监听器、过滤器和拦截器
- psql 表的行操作
- 内网渗透扫描神器 Perun
- C++自动类型转化--特殊构造函数方法和重载的运算符方法
- Chivas 芝华士12年-广告歌Sarah Khider《Mermaid Song》
- 微软TTS语音引擎实现文本朗读
- c1200 写频软件_摩托罗拉C1200写频软件
- graphpad折线图教程_GraphPad Prism 8.0绘制误差连线并填充颜色图
- R语言 伯努利试验和二项分布
- WordPress调用自带的友情链接功能_只在首页显示
- 计算机专业老师考什么教师,老师!计算机专业的考试也太太太太太太难了!
- 计算机参数含义,电脑内存条参数各有什么含义?
- 深度学习OCR | 文字识别网络 CRNN 论文翻译
- 值得收藏!史上最全WINDOWS安全工具锦集
- p5.js 编程临摹动态图形(互动媒体技术作业)
- mysql命令行集锦
热门文章
- android自动化优化工具,一键自动优化系统大师下载
- eureka多台注册中心_微服务实战系列(五)-注册中心Eureka与nacos区别
- python界面是什么样子的图片_如何在python界面显示图片
- 10.QML Qt Quick Controls 2之imagine style
- python 列表表达式 if_python中if else如何判断表达式成立?
- 手机短信验证码真的安全吗?
- Ubuntu使用tzselect修改时区
- 微信内置浏览器的JsAPI(WeixinJSBridge续)[转载]
- linux shell (4) - Loop 循环
- 探索客户端JavaScript