[LeetCode] 120. Triangle (Medium)

原题

思路:
dp,从下往上依次取得最小的,取到最上面的,就是一条最小的路径。

class Solution
{
public:
  int minimumTotal(vector> &triangle)
  {
    int rowSize = triangle.size();
    int colSize;
    if (rowSize == 0)
      return -1;
    if (rowSize == 1)
      return triangle[0][0];

    for (int row = rowSize - 2; row >= 0; row--)
    {
      colSize = triangle[row].size();
      for (int col = 0; col < colSize; col++)
      {
        triangle[row][col] +=
            min(triangle[row + 1][col], triangle[row + 1][col + 1]);
      }
    }
    return triangle[0][0];
  }
};

你可能感兴趣的:([LeetCode] 120. Triangle (Medium))