# 【LeetCode】 120. Triangle
## Description
> Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.
> Note:
> 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.
> 給一三角形,找到一條從上到下最小總和的路徑,回傳總和值。
> 注意:
> 額外的挑戰:你只能使用O(n)的空間複雜度,n代表三角形的高度。
## Example:
```
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).
```
## Solution
* 從三角形的底部往上跑,讓每個數字去加自己下面兩個數字之中比較小的。一路加到頂端,頂端就是答案。
### Code
```C++=1
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
for(int i=triangle.size()-2;i>=0;i--)
{
for(int j=0;j<triangle[i].size();j++)
{
triangle[i][j]+=min(triangle[i+1][j],triangle[i+1][j+1]);
}
}
return triangle[0][0];
}
};
```
###### tags: `LeetCode` `C++`