在 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
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下