美文网首页
三角形数组找最小和

三角形数组找最小和

作者: 小码弟 | 来源:发表于2018-11-06 11:30 被阅读0次

形如:
[
[1],
[2,3],
[4,5,6],
[7,8,9,10]
]
的三角形数组,求从自上而下的路径累加和中最小的数,如上例就是1->2->4->7 == 14,只能上下相邻的数相加

动态规划,自顶向下分析,自底向上计算

int getMinSum(vector<vector<int>> triangle)
{
  if(triangle.size() == 0)
    return 0;
  int rows = triangle.size();
  vector<vector<int>> minsum(rows);
  for(int j = 0; j <rows; ++j)
    {
      vector<int> temp(j+1);
      minsum.push_back(temp);
    }

  // 初始化最低一层
  for(int j = 0; j<rows; j++)
    minsum[rows-1][j] = triangle[rows-1][j];
  // 自底向上保存最小值
  for(int row = rows-2; row>=0; --row)
    for(int col = 0; col<minsum[row].size(); ++col)
      {
        int min = minsum[row+1][col]<minsum[row+1][col+1]?
                  minsum[row+1][col]:minsum[row+1][col+1];
        minsum[row][col] = min + triangle[row][col];
      }
    return minsum[0][0];
}

相关文章

  • 三角形数组找最小和

    形如:[[1],[2,3],[4,5,6],[7,8,9,10]]的三角形数组,求从自上而下的路径累加和中最小的数...

  • 9 全部题目

    前缀和 53 Maximum Subarray 找和最大子数组(找最小的话 元素取反求最大就行)从前向后 计算su...

  • 基础九 子数组和前缀和

    53 Maximum Subarray 找和最大子数组(找最小的话 元素取反求最大就行) 从前向后 计算sum同时...

  • 44. 最小子数组

    最小子数组 描述 笔记 数据 评测 给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。 注意事项 子数组...

  • LeetCode 120. 三角形最小路径和(Triangle)

    120. 三角形最小路径和 三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻...

  • 动态规划

    70 爬楼梯 记忆化数组解决: 动态规划解决: 120 三角形最小路径和 解法一:既然是从上往下移动,我们可以把上...

  • LeetCode-120-三角形的最小路径和

    LeetCode-120-三角形的最小路径和 动态规划介绍 题目 给定一个三角形,找出自顶向下的最小路径和。每一步...

  • 大石头 -- 综合练习

    二维数组 和 杨辉三角形

  • 44. 最小子数组

    给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例给出数组[1, -1, -2, 1],返回 -3思...

  • lintcode 最小子数组

    给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例给出数组[1, -1, -2, 1],返回 -3解...

网友评论

      本文标题:三角形数组找最小和

      本文链接:https://www.haomeiwen.com/subject/bukexqtx.html