在 Python 中使 sum 可被 P 整除的程序
假设我们有一个数组nums和另一个值p,我们删除最小的子数组(不是整个数组),使得剩余值的总和可以被p整除。我们必须找到我们需要删除的最小子数组的长度,如果没有这样的子数组,则返回-1。
因此,如果输入类似于nums=[8,2,6,5,3]p=7,那么输出将为1,因为如果我们删除3,则总和将为21,并且可以被7整除。
示例
让我们看看以下实现以获得更好的理解-
def solve(nums, p):
ans = float("inf")
s = sum(nums) % p
d = {0:-1}
cum = 0
if s == 0:
return 0
for i in range(len(nums)):
cum+=nums[i]
r = cum%p
if (r-s)%p in d:
ans = min(ans, i-d[(r-s)%p])
d[r] = i
return ans if ans输入
[8,2,6,5,3], 7
输出结果1
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短