如何解决动态规划中是否包含前缀和?
我一直在解决算法问题,我对这些术语有点困惑。
当我们想像下面的代码一样计算前缀和(或累积和)时,我们可以说我们在使用动态规划吗?
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 举报,一经查实,本站将立刻删除。