Triangle
原题链接Triangle
在杨辉三角中找到一条从第一行到最后一行的路径,使该路径和最小,要求每次移动只能移动到下一行的相邻位置。用二维数组表示,假设当前在triangle[i][j]位置,那么下次只能移动到triangle[i+1][j]和triangle[i+1][j+1]两个位置
要求空间复杂度为O(n)
第一种方法是在原二维数组上做修改,利用动态规划的思想,对于某个位置triangle[i][j],它只能通过triangle[i-1][j-1]和triangle[i-1][j]两个位置移动到,所以可以计算到达triangle[i][j]时的最小路径和,最终求解到达最后一行的路径和,然后求最小值
代码如下
class Solution {
public:
int minimumTotal(vector<