Accepted Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public: int minimumTotal(vector<vector<int>>& triangle) { int m=triangle.size(); int n=triangle[m-1].size(); for(int i=1;i<m;i++) { triangle[i][0]+=triangle[i-1][0]; } for(int i=1;i<n;i++) { triangle[i][i]+=triangle[i-1][i-1]; } for(int i=2;i<m;i++) { for(int j=1;j<n&&j<i;j++) { triangle[i][j]+=min(triangle[i-1][j],triangle[i-1][j-1]); } }
int ans=triangle[m-1][0]; for(int i=1;i<n;i++) { if(triangle[m-1][i]<ans) { ans=triangle[m-1][i]; } } return ans; } };
|