มีรายการ nums และ k ตรวจสอบว่าแบ่งเป็นคู่ได้ทุกคู่ ที่ผลรวมหาร k ลงตัว
เช่น nums=[4,7,2,5], k=6 ให้ True คู่ (4,2) และ (7,5) ผลรวม 6 และ 12 หาร 6 ลงตัว
ขั้นตอนการแก้ปัญหา
- ถ้าจำนวนสมาชิกคี่ คืน False
- นับความถี่ modulo k ใน
count count[0]ต้องเป็นคู่- สำหรับ i=1 ถึง k//2:
count[i] == count[k-i] - ผ่านทั้งหมดคืน True
ตัวอย่างโค้ด
class Solution:
def solve(self, nums, k):
if len(nums) % 2: return False
count = [0]*k
for n in nums: count[n%k] += 1
if count[0] % 2: return False
for i in range(1, k//2 + 1):
if count[i] != count[k-i]: return False
return True
ob = Solution()
nums = [4,7,2,5]; k = 6
print(ob.solve(nums, k))
อินพุต
[4, 7, 2, 5], 6
เอาต์พุต
True