简单题,一般的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;
    }
};

 

相关文章:

  • 2022-01-18
  • 2021-11-25
  • 2021-05-20
  • 2022-12-23
  • 2021-08-17
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-02
  • 2021-07-09
  • 2022-03-02
  • 2022-01-31
  • 2021-08-02
  • 2021-12-22
  • 2022-03-07
相关资源
相似解决方案