Triangle

//DFS超时了。

   void dfs(vector<vector<int> > &triangle, int depth, int offset,int curSum,int &min)
    {
        if(depth==triangle.size())
        {
            if(min>curSum)
                min = curSum;
            return;
        }
        curSum += triangle[depth][offset];
        dfs(triangle,depth+1,offset,curSum,min);
        dfs(triangle,depth+1,offset+1,curSum,min);
        curSum -= triangle[depth][offset];
        return;
    }
    int minimumTotal(vector<vector<int> > &triangle) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        int min = INT_MAX;
        
        dfs(triangle,0,0,0,min);
        
        return min;
        
        
    }

  

posted @ 2013-06-14 21:51  summer_zhou  阅读(116)  评论(0编辑  收藏  举报