使用Python查找总和等于目标的最大非重叠子数组数的程序
假设我们有一个数组nums和另一个名为target的值。现在我们必须找到最大数量的非空非重叠子数组,使得每个不同子数组中的值之和与目标相同。
因此,如果输入类似于nums=[3,2,4,5,2,1,5]target=6,那么输出将为2,因为有两个子数组[2,4]和[1,5]其总和与6相同。
为了解决这个问题,我们将按照以下步骤操作-
t:=具有单个元素0的新集合
温度:=0
答案:=0
对于nums中的每个i,做
将温度插入t
答案:=答案+1
t:=具有单元素温度的新集合
温度:=温度+我
上一个:=温度-目标
如果prev在t中,则
否则,
返回答案
让我们看看以下实现以获得更好的理解-
示例
def solve(nums, target):
t = set([0])
temp = 0
ans=0
for i in nums:
temp += i
prev = temp-target
if prev in t:
ans += 1
t = set([temp])
else:
t.add(temp)
return ans
nums = [3,2,4,5,2,1,5]
target = 6
print(solve(nums, target))输入
"poput","vwput",9输出结果
2
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语