使用 Python 检查数组对是否可被 k 整除的程序
假设我们有一个名为nums的数组,该数组包含偶数个元素,并具有另一个值k。我们必须将nums精确地分成n/2对,这样每对的总和可以被k整除。如果我们可以这样做,则返回true,否则返回false。
因此,如果输入类似于nums=[9,5,3,4,7,10,20,8]k=3,那么输出将为True,因为我们可以像(9,3),(5,7),(4,20),(8,10),所有对的总和可以被3整除。
为了解决这个问题,我们将按照以下步骤操作-
dp:=一个新列表
计数:=0
对于nums中的每个x,做
在dp的末尾插入t
计数:=计数+1
t:=k-(xmodk)
如果t与k相同,则
否则,
如果countmod2不等于0,则
返回错误
对列表进行排序dp
低:=0
高:=dp的大小-1
当低<高时,做
返回错误
如果dp[low]+dp[high]与k不同,则
低:=低+1
高:=高-1
返回真
让我们看看以下实现以获得更好的理解-
示例
def solve(nums, k):
dp=[]
count=0
for x in nums:
t=k-(x % k)
if t == k:
count+=1
else:
dp.append(t)
if count % 2 != 0:
return False
dp.sort()
low = 0
high = len(dp)-1
while low < high:
if dp[low] + dp[high] != k:
return False
low += 1
high -= 1
return True
nums = [9,5,3,4,7,10,20,8]
k = 3
print(solve(nums, k))输入
[9,5,3,4,7,10,20,8], 3输出结果
True
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短