问题描述
我一直在解决算法问题,我对这些术语有点困惑。
当我们想像下面的代码一样计算前缀和(或累积和)时,我们可以说我们在使用动态规划吗?
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 (将#修改为@)