leetcode 120.Triangle | Java最短代码实现
2016-03-08 15:19
357 查看
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
The minimum path sum from top to bottom is
11).
【抛砖】
考察动态规划,这里从底层开始,逐层往上层动态求和,最后得到的最小和就是dp[0]:
43 / 43 test
cases passed.
Runtime: 6 ms Your
runtime beats 40.91% of javasubmissions.
【补充】
同样的动归,采用深度优先,很容易想到用递归法,但是这种方法在数据量很大时超时了:
欢迎优化!
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).
【抛砖】
考察动态规划,这里从底层开始,逐层往上层动态求和,最后得到的最小和就是dp[0]:
public int minimumTotal(List<List<Integer>> triangle) { int[] dp = new int[triangle.size() + 1]; for (int i = triangle.size() - 1; i >= 0; i--) for (int j = 0; j < triangle.get(i).size(); j++) dp[j] = triangle.get(i).get(j) + Math.min(dp[j], dp[j + 1]); return dp[0]; }
43 / 43 test
cases passed.
Runtime: 6 ms Your
runtime beats 40.91% of javasubmissions.
【补充】
同样的动归,采用深度优先,很容易想到用递归法,但是这种方法在数据量很大时超时了:
public int minimumTotal(List<List<Integer>> triangle) { return findMinPath(triangle, 0, Integer.MAX_VALUE, 0, 0); } public int findMinPath(List<List<Integer>> triangle, int curSum, int min, int index, int level) { curSum += triangle.get(level).get(index); if (level == triangle.size() - 1) return Math.min(min, curSum); return Math.min(findMinPath(triangle, curSum, min, index, level + 1), findMinPath(triangle, curSum, min, index + 1, level + 1)); }
欢迎优化!
相关文章推荐
- Java:按值传递还是按引用传递详细解说
- 利用java自带的base64实现加密、解密
- 图的理解:深度优先和广度优先遍历及其 Java 实现
- java第六天
- 使用IntelliJ IDEA 15和Maven 开发Spring Data JPA + MVC Web应用
- Java反射机制详解
- Java IDE中设置作者日期等Javadoc注释信息
- 关于同步VSS服务器上的代码发生Eclipse里面的项目全部不见了
- Java实现最基本的集中排序
- Java 反转单链表
- java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
- eclipse生成Hibernate注解类【续】
- spring使用<mvc:annotation-driven/>来解决定时任务
- spring boot环境下使用quartz设置定时任务
- springMVC框架访问web-inf下的jsp文件
- struts2 默认Action
- Eclipse 未正常退出,导致进不去的问题
- Maven环境搭建与在Eclipse中的配置
- java环境安装完毕,运行web项目报javax annotation managedbean unsup错误
- [Java]简易使用JavaDoc生成说明文档