[LeedCode OJ]#120 Triangle
2015-08-24 13:57
260 查看
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目链接:https://leetcode.com/problems/triangle/
题意:
给定一个数字组成的三角形,从顶点走到最底层,只能往下或者往右下走,求走到最底层最小的值
思路:
由于(i,j)只能从(i-1,j)或(i-1,j-1)走到,则状态转移方程为dp[i][j] = min(dp[i-1][j-1],dp[i-1][j])+a[i-1][j-1]
题目链接:https://leetcode.com/problems/triangle/
题意:
给定一个数字组成的三角形,从顶点走到最底层,只能往下或者往右下走,求走到最底层最小的值
思路:
由于(i,j)只能从(i-1,j)或(i-1,j-1)走到,则状态转移方程为dp[i][j] = min(dp[i-1][j-1],dp[i-1][j])+a[i-1][j-1]
class Solution { public: int minimumTotal(vector<vector<int> >& a) { int n = a.size(); int i,j,k; vector<vector<int> > dp; dp.resize(n+1); for(i = 0; i<=n; i++) dp[i].resize(n+1); for(i = 0; i<=n; i++) { for(j = 0; j<=n; j++) dp[i][j] = (1<<30); } dp[1][1] = a[0][0]; for(i = 2; i<=n; i++) { for(j = 1; j<=i; j++) { dp[i][j] = min(dp[i-1][j-1],dp[i-1][j])+a[i-1][j-1]; } } int ans = (1<<30); for(i = 1; i<=n; i++) ans = min(ans,dp [i]); return ans; } };
相关文章推荐
- 中间件简单
- 【敏捷】扑克牌估算
- 做得到么
- jquery 元素选择器集合
- Spring MVC 原理详解
- 【NOIP2003TG/codevs1085】 数字游戏 解题报告
- Shell脚本查看linux系统性能瓶颈
- KMP算法
- C++ 入门教程(二) 第一个C++程序:Hello World
- Android SDK 在线更新镜像服务器资源
- 图像处理职位面试题(图像处理+c++)
- 黑马程序员-------Java笔记-------IO题(常见的2种题型)
- Android SurfaceView实战 打造抽奖转盘
- 【Apple文档阅读笔记】View编程指南---View
- C# 中的委托和事件【转载】
- Examining Open vSwitch Traffic Patterns
- Sqlite学习笔记(三)&&WAL性能测试
- jQuery 表单对象属性过滤现则器
- Courses
- WPARAM和LPARAM的含义