120. Triangle

来源:互联网 发布:自然之名酵母水 知乎 编辑:程序博客网 时间:2024/06/05 03:27
//Time Limit Exceeded class Solution {public:    int min;    bool flag=true;    void get_min(vector<vector<int>> & triangle,int i,int j,int sum)    {        if(i==triangle.size()-1)        {            if(flag||min>sum)                min=sum;            flag=false;            return;        }        get_min(triangle,i+1,j,sum+triangle[i+1][j]);        get_min(triangle,i+1,j+1,sum+triangle[i+1][j+1]);    }    int minimumTotal(vector<vector<int>>& triangle) {        get_min(triangle,0,0,triangle[0][0]);        return min;    }};
//ac 12msclass Solution {public:    int minimumTotal(vector<vector<int>>& triangle) {        if(triangle.size()==1) return triangle[0][0];        vector<int> v(triangle[triangle.size()-1].size(),1);        vector<int> v1(triangle[triangle.size()-1].size(),1);        v[0]=triangle[0][0];        int min_num;        for(int i=1;i<triangle.size();i++)        {            v1[0]=v[0]+triangle[i][0];            v1[triangle[i].size()-1]=v[triangle[i].size()-2]+triangle[i][triangle[i].size()-1];            for(int j=1;j<triangle[i].size()-1;j++)            {                v1[j]=min(v[j],v[j-1])+triangle[i][j];            }            if(i==v.size()-1) min_num=v1[0];            for(int j=0;j<triangle[i].size();j++)            {                v[j]=v1[j];                if(i==v.size()-1&&v[j]<min_num) min_num=v[j];            }        }        return min_num;    }};
0 0
原创粉丝点击