zoukankan      html  css  js  c++  java
  • LeetCode OJ--Triangle **

    https://oj.leetcode.com/problems/triangle/

    一个三角形,类似于杨辉三角的形状,求从上到下最小的路径和,但走每一步都得是相邻的。

    动态规划,从下到上一层层来。

    sum[i] = min{sum[i]+triangle[i][j],sum[i+1]+triangle[i][j]}

    有一个保存每一个点数值的过程。

    #include <iostream>
    #include <vector>
    using namespace std;
    
    class Solution {
    public:
        int minimumTotal(vector<vector<int> > &triangle) {
            int row = triangle.size();
            if(row == 0)
                return 0;
            if(row == 1)
                return triangle[0][0];
    
            //initialize
            vector<int> sum;
            sum.resize(row);
            for(int i = 0;i<triangle[row-1].size();i++)
                sum[i] = triangle[row-1][i];
    
            for(int i = row-2;i>=0;i--)
            {
                for(int j = 0;j<=i;j++)
                {
                    int min1 = sum[j]<sum[j+1]?sum[j]:sum[j+1];
                    sum[j] = min1 + triangle[i][j];
                }
            }
            return sum[0];
        }
    };
    
    int main()
    {
        class Solution myS;
        vector<int> v1;
        v1.push_back(-1);
        vector<int> v2;
        v2.push_back(-2);
        v2.push_back(-3);
        vector<int> v3;
        v3.push_back(6);
        v3.push_back(5);
        v3.push_back(7);
        vector<int> v4;
        v4.push_back(4);
        v4.push_back(1);
        v4.push_back(8);
        v4.push_back(3);
    
        vector<vector<int> > num;
        num.push_back(v1);
        num.push_back(v2);
        num.push_back(v3);
        num.push_back(v4);
        cout<<myS.minimumTotal(num);
     
        return 0;
    }
  • 相关阅读:
    汇编-MOV指令
    mfc 线程的优先级
    golang图片裁剪和缩略图生成
    libnsq编译、使用记录
    c日志宏
    golang 六宫格、九宫格头像生成
    使用httputil中ReverseProxy反向代理遇到的坑
    Nginx反向代理与Backend直接配置长连接
    openssl:AES CBC PKCS5 加解密 (C/GOLANG)
    纯C:AES256
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3797747.html
Copyright © 2011-2022 走看看