动态规划中是否包含前缀和?

问题描述

我一直在解决算法问题,我对这些术语有点困惑。

当我们想像下面的代码一样计算前缀和(或累积和)时,我们可以说我们在使用动态规划吗?

def calc_prefix_sum(nums):
    N = len(nums)
    prefix_sum = [0] * (N + 1)
    for i in range(1,N + 1):
        prefix_sum[i] = prefix_sum[i - 1] + nums[i - 1]
    return prefix_sum

nums = [1,3,-2,1]
print(calc_prefix_sum(nums))
[0,1,4,2,3]

根据本page中的定义,

动态编程用于我们有问题的地方,这可以是 分成相似的子问题,以便他们的结果可以 重复使用。

在我的prefix_sum算法中,当前的计算(prefix_sum[i])被划分为相似的子问题(prefix_sum[i - 1] + nums[i - 1]),使得之前的结果(prefix_sum[i - 1 ]) 可以重复使用。所以我假设计算前缀和是动态规划的应用之一。

我可以说它是动态规划,还是应该使用不同的术语? (特别是,我在考虑编码面试的情况。)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)