简单题,一般的dp入门题。
只是要求O(n)的空间,目测是想要求数组迭代吧。
但是从上往下推就不用额外空间了
PS。写了if没写else都是sb,害得我看这个简单代码调试了10分钟
class Solution { public: int minimumTotal(vector<vector<int> > &triangle) { // Start typing your C/C++ solution below // DO NOT write int main() function for(int i = 1 ; i < triangle.size() ; i++){ for(int j = 0 ; j < triangle[i].size() - 1; j++){ if(j == 0) triangle[i][j] += triangle[i-1][j]; else triangle[i][j] += min(triangle[i-1][j],triangle[i-1][j-1]); //就这里sb的没写else } triangle[i][triangle[i].size() - 1] += triangle[i-1][triangle[i].size() - 2]; } int ans = 0x7FFFFF; int len = triangle.size(); for(int i = 0 ; i < triangle[len-1].size() ; i++ ){ // cout << "i = " << i<< " "<<triangle[len-1][i] <<endl; ans = min(ans , triangle[len-1][i]); } return ans; } };