作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
block 不能重叠。它们也不能相邻。假设 A 的长度 > 2。
我知道这与求最大子数组的和非常相似,并且可以在线性时间内完成。
我也很确定该算法的开始与查找最大子数组问题相同。
这是我前两天听到的一个问题,想看看怎么解决。
最佳答案
你可以只执行两次最大子数组算法。
def max_two_sub_array():
sum = l[0] = ls[0] = 0
for i = 1 to n:
sum += a[i]
if sum < 0: sum = 0
if l[i - 1] > sum:
l[i] = l[i - 1]
ls[i] = ls[i - 1] # endpoint of l[i]
else
l[i] = sum
ls[i] = i
sum = r[n + 1] = 0
rs[n + 1] = n + 1
for i = n to 1:
sum += a[i]
if r[i + 1] > sum:
r[i] = r[i + 1]
rs[i] = rs[i + 1] # startpoint of r[i]
else
r[i] = sum
rs[i] = i
ans = 0
for i = 0 to n:
ans = max(ans, l[i] + r[i + 1])
return ans
关于algorithm - 找到 2 个具有最大总和的连续数组 block 。归还他们的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514236/
我想弄清楚为什么这不起作用。 我在 Typescript 上使用 React 和 Redux。 我有以下代码: import * as React from 'react'; import * as
我想申请重新投递并使用死信 channel 。所以发现这个非常有用的apache-camel FAQ link 。我按照本网站中提到的步骤进行操作。 我添加了更多逻辑,代码可以在 github 中找到
我是一名优秀的程序员,十分优秀!