当前位置:首页 > 其他 > IOI 1994 洛谷1216:如何用O(1)空间解决数字三角形问题?附代码实现

IOI 1994 洛谷1216:如何用O(1)空间解决数字三角形问题?附代码实现

2个月前 (05-23)


IOI 1994 洛谷1216:如何用O(1)空间解决数字三角形问题?附代码实现 倒推法 洛谷 数字三角形 动态规划 0(1) 优化 算法 C++ 递推 第1张题目重解:

数字三角形是一个经典的动态规划问题,给定一个由数字组成的三角形结构,从顶部出发,每次可以移动到下方相邻的数字,最终到达底部。我们需要找到一条路径,使得路径上经过的数字总和最大。这个问题可以很好地展示动态规划的空间优化技巧


解题思路:

1.直接在原数组上进行操作,不需要额外空间

2.从倒数第二行开始向上处理

3.每个位置更新为当前值加上下方两个相邻位置中的较大值

4.最终顶部元素即为最大路径和

这种方法将空间复杂度优化到O(1),直接在输入数组上进行修改,是最优的空间解决方案。


代码详解

#include<iostream>
using namespace std;
int** nums; // 定义一个二维指针数组,用于存储数字三角形

int main()
{
    int r; // 三角形的行数
    cin>>r; // 输入行数
    nums=new int*[r]; // 为每一行分配指针空间
    for(int i=0;i<r;i++){
        nums[i]=new int[r]; // 为每一行分配具体的存储空间
        for(int j=0;j<=i;j++) // 逐行输入数字
            cin>>nums[i][j];
    }
    for(int i=r-1;i>0;i--){ // 从倒数第二行开始向上计算
        for(int j=0;j<r;j++){ // 遍历当前行的每个位置
            nums[i-1][j]+=max(nums[i][j],nums[i][j+1]); // 更新当前位置的最大路径和
        }
    }    
    cout<<nums[0][0]; // 输出顶部的最大路径和,即为最终答案

    return 0;
}


原创内容 转载请注明出处

分享给朋友:

相关文章

力扣第1991题:寻找数组的中心索引 如何找到左右和相等的中心索引

力扣第1991题:寻找数组的中心索引 如何找到左右和相等的中心索引

题目解读给定一个整数数组,我们需要找到一个中心索引,使得该索引左侧所有元素的和等于右侧所有元素的和。如果不存在这样的索引,则返回-1。中心索引的定义不包含在左右两侧的和计算中。这个问题考察对数组遍历和...

GESP2023年六级真题解析:动态规划解决小杨买饮料问题(洛谷3873)

GESP2023年六级真题解析:动态规划解决小杨买饮料问题(洛谷3873)

一、题目解读小杨买饮料是GESP 2023年六级认证考试中的一道经典动态规划题目,考察学生对背包问题的理解和应用能力。题目描述小杨需要购买n种饮料,每种饮料有特定的体积w和价格v,他要在不超过容量l的...

手搓顺序表类代码注释与详解:从零实现动态数组(新手教程)

一、简介和特点顺序表(Sequential List)是数据结构中基础的一种线性表,其特点是将数据元素存储在连续的内存空间中。通过数组实现,支持随机访问(即通过索引直接访问元素),适用于频繁随机读取的...

NOIP 2008火柴棒等式题解(C++代码实现)  动态规划与枚举算法详解

NOIP 2008火柴棒等式题解(C++代码实现) 动态规划与枚举算法详解

一、题目解读火柴棒等式问题(NOIP 2008,洛谷P1149)要求使用给定数量的火柴棒,构造形如 A + B = C 的等式,其中A、B、C均为整数,且火柴棒总数恰好等于输入值。需统计符合条件的等式...

LeetCode 120题三角形最小路径和最优解法:动态规划详解与代码实现

LeetCode 120题三角形最小路径和最优解法:动态规划详解与代码实现

一、题目解读LeetCode 120题“三角形最小路径和”要求给定一个由数字组成的三角形,从顶部开始向下移动,每次可向左或向右移动一格,计算从顶至底的最小路径和。三角形以二维向量形式给出,每层元素数量...

【蓝桥杯2015省赛解析】生命之树:树形DP解题全攻略(洛谷P8625代码详解)

【蓝桥杯2015省赛解析】生命之树:树形DP解题全攻略(洛谷P8625代码详解)

一、题目解读    “生命之树”是一道经典的树形结构问题,要求计算一棵带权树中,以某个节点为根的最大子树权值和。题目输入为n个节点及边信息,每个节点有权值wi,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。