博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode - 120. Triangle
阅读量:7146 次
发布时间:2019-06-29

本文共 1038 字,大约阅读时间需要 3 分钟。

Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.

For example, given the following triangle

[     [2],    [3,4],   [6,5,7],  [4,1,8,3]] The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11). Bonus point if you are able to do this using only O(n) extra space, where n is the total number of rows in the triangle. 思路:简单DP,把到每一个点的最优路径算出来,利用上面算好的结果。最后选最后一层的最优解。

1,动态规划。到第i层的第k个顶点的最小路径长度表示为f(i,k),则f(i, k) = min{f(i-1,k),  f(i-1,k-1)} + d(i, k); 其中d(i, k)表示原来三角形数组里的第i行第k列的元素。则可以求得从第一行到最终到第length-1行第k个元素的最小路径长度,最后再比较第length-1行中所有元素的路径长度大小,求得最小值。

2,本题主要关心的是空间复杂度不要超过n。

3,注意边界条件——每一行中的第一和最后一个元素在上一行中只有一个邻居。而其他中间的元素在上一行中都有两个相邻元素。

 

代码:

import java.util.*;public class Solution {    public int minimumTotal(List
> triangle) { if (triangle == null || triangle.get(0) == null) return 0; int iLen = triangle.size(); for (int i=1; i

 

 

转载于:https://www.cnblogs.com/wxisme/p/5906352.html

你可能感兴趣的文章
dedecms后台左侧菜单空白不显示怎么处理
查看>>
浅析如何解决独立开发者收入不稳定的情况
查看>>
微信小程序开发文档官方版发布
查看>>
鲁豫有约---揭秘奥数国家队 150829
查看>>
File类
查看>>
Http 学习笔记(一)
查看>>
使用数据结构的目的
查看>>
Asp.Net Session的三种方法及Web.Config设置
查看>>
C++类和异常例子
查看>>
互联网协议入门及DNS原理入门
查看>>
手把手| 用Python代码建个数据实验室,顺利入坑比特币
查看>>
[20150624]提升scn.txt
查看>>
对ORM的支持 之 8.4 集成JPA ——跟我学spring3
查看>>
MySQL5.5加主键锁读问题
查看>>
HDOJ 2055 An easy problem
查看>>
LinkedHashMap相关信息介绍(转)
查看>>
【过程改进】10分钟进阶Nuget
查看>>
HDOJ 2206 IP的计算(正则表达式的应用)
查看>>
浅谈 PHP 变量可用字符
查看>>
计算机英语 记录
查看>>