微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决动态规划中是否包含前缀和?

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

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

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 举报,一经查实,本站将立刻删除。