leetcode-115-Triangle

来源:互联网 发布:飞行仪表显示软件开发 编辑:程序博客网 时间:2024/05/16 01:11
#include <iostream>#include <vector>using namespace std;/* 一条路径只可能是当前行的i,j和下一行的i+1,j和i+1,j+1, 但是不能用贪心法的,贪心法会将范围缩小很多,要用动态规划 算出所有的可能,自底向上。 */class Solution {public:    int minimumTotal(vector<vector<int>>& triangle) {        for (int i = triangle.size() - 2; i >= 0; i--) {            for (int j = 0; j < i + 1; j++) {                //每一行的结果可以用sum代替                triangle[i][j] = min(triangle[i + 1][j], triangle[i + 1][j + 1]) + triangle[i][j];            }        }        return triangle[0][0];    }};int main(int argc, const char * argv[]) {    Solution s;    vector<vector<int>> t(4, vector<int>(10, 100000000));    t[0][0] = 2;    t[1][0] = 3;    t[1][1] = 4;    t[2][0] = 6;    t[2][1] = 5;    t[2][2] = 7;    t[3][0] = 4;    t[3][1] = 1;    t[3][2] = 8;    t[3][3] = 3;    cout << s.minimumTotal(t) << endl;    return 0;}

0 0
原创粉丝点击