在 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 出阁宴祝福语姐姐简短