84_leetcode_triangle
来源:互联网 发布:指数补偿算法 编辑:程序博客网 时间:2024/04/25 21:49
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).
1:注意特殊情况;2:设置两个数组,3:在计算当前行的最小值的时候,分为第一个元素,最后一个元素和中间元素两种情况;4:最后遍历数组求得最小值
<p class="p1"> <span class="s1">int</span> minimumTotal(<span class="s2">vector</span><<span class="s2">vector</span><<span class="s1">int</span>> > &triangle)</p><p class="p1"> {</p><p class="p1"> <span class="s1">if</span>(triangle.<span class="s3">size</span>() == <span class="s4">0</span> || triangle[<span class="s4">0</span>].<span class="s3">size</span>() == <span class="s4">0</span>)</p><p class="p1"> {</p><p class="p1"> <span class="s1">return</span> <span class="s4">0</span>;</p><p class="p1"> }</p><p class="p2"> </p><p class="p1"> <span class="s1">int</span> rows = (<span class="s1">int</span>)triangle.<span class="s3">size</span>();</p><p class="p1"> <span class="s1">unsigned</span> <span class="s1">long</span> columns = (<span class="s1">int</span>)triangle[<span class="s3">rows</span>-<span class="s4">1</span>].<span class="s3">size</span>();</p><p class="p1"> <span class="s2">vector</span><<span class="s1">int</span>> result(columns, <span class="s4">0</span>);</p><p class="p1"> <span class="s2">vector</span><<span class="s1">int</span>> temp(columns, <span class="s4">0</span>);</p><p class="p2"> </p><p class="p1"> <span class="s1">for</span>(<span class="s1">int</span> i = <span class="s4">0</span>; i < rows; i++)</p><p class="p1"> {</p><p class="p1"> <span class="s1">int</span> columns = (<span class="s1">int</span>)triangle[<span class="s3">i</span>].<span class="s3">size</span>();</p><p class="p1"> <span class="s1">for</span>(<span class="s1">int</span> j = <span class="s4">0</span>; j < columns; j++)</p><p class="p1"> {</p><p class="p1"> <span class="s1">if</span>(i == <span class="s4">0</span>)</p><p class="p1"> {</p><p class="p1"> result[<span class="s3">j</span>] = triangle[<span class="s3">i</span>][<span class="s3">j</span>];</p><p class="p1"> }</p><p class="p1"> <span class="s1">else</span></p><p class="p1"> {</p><p class="p1"> <span class="s1">if</span>(j == <span class="s4">0</span>)</p><p class="p1"> {</p><p class="p1"> result[<span class="s3">j</span>] = temp[<span class="s3">j</span>] + triangle[<span class="s3">i</span>][<span class="s3">j</span>];</p><p class="p1"> }</p><p class="p1"> <span class="s1">else</span> <span class="s1">if</span>(j == columns - <span class="s4">1</span>)</p><p class="p1"> {</p><p class="p1"> result[<span class="s3">j</span>] = temp[<span class="s3">j</span>-<span class="s4">1</span>] + triangle[<span class="s3">i</span>][<span class="s3">j</span>];</p><p class="p1"> }</p><p class="p1"> <span class="s1">else</span></p><p class="p1"> {</p><p class="p1"> result[<span class="s3">j</span>] = triangle[<span class="s3">i</span>][<span class="s3">j</span>] + (temp[<span class="s3">j</span>-<span class="s4">1</span>] < temp[<span class="s3">j</span>] ? temp[<span class="s3">j</span>-<span class="s4">1</span>] : temp[<span class="s3">j</span>]);</p><p class="p1"> }</p><p class="p1"> }</p><p class="p1"> }</p><p class="p1"> temp = result;</p><p class="p1"> }</p><p class="p2"> </p><p class="p1"> <span class="s1">int</span> minNumber = result[<span class="s4">0</span>];</p><p class="p1"> <span class="s1">for</span>(<span class="s1">int</span> i = <span class="s4">0</span>; i < (<span class="s1">int</span>)result.<span class="s3">size</span>(); i++)</p><p class="p1"> {</p><p class="p1"> <span class="s1">if</span>(result[<span class="s3">i</span>] < minNumber)</p><p class="p1"> {</p><p class="p1"> minNumber = result[<span class="s3">i</span>];</p><p class="p1"> }</p><p class="p1"> }</p><p class="p1"> <span class="s1">return</span> minNumber;</p><p class="p1"> }</p>
0 0
- 84_leetcode_triangle
- 84
- 84
- 84
- 84页
- 84句话
- Top 84
- nyoj-84
- nefu 84
- 84消毒液
- 84-CALayer
- ocp-84
- 练习84
- LeetCode 84
- LeetCode #84
- CRS:84与EPSG:84的区别
- SQLServer技术(84)
- PECompact v2.84
- Qt5官方demo解析集10——Qt Quick Particles Examples - Emitters
- ios气泡动画效果的简单实现
- 为什么要Z序,经典解释!
- hdu1698 Just a Hook (线段树功能:成段替换,总区间求和)
- 计算机博士的道路很艰辛,希望能如期毕业
- 84_leetcode_triangle
- HDU1754线段树单点更新区间查询(数组版)
- C/C++中字符串String及字符操作方法
- 黑马程序员—浅析get和post提交方
- CursorAdapter bindView optimization
- ARM Thumb指令集完整列表
- Queue 消息的发送与接收(PTP 消息传递模型)
- java6:方法重载(overload)
- windos中的CPL(ControlPanelextension)