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;
}
浙公网安备 33010602011771号