Cho mảng nums. Kiểm tra xem có tồn tại phần tử nào mà giá trị của nó bằng tổng của tất cả các phần tử còn lại hay không.
Ví dụ: [3,2,10,4,1] → 10 = 3+2+4+1 → True.
Giải thuật
- Tính tổng tất cả phần tử
total. - Nếu
totalchẵn và tồn tại phần tử có giá trịtotal/2trong mảng →True.
Mã ví dụ
from collections import defaultdict
def solve(nums):
freq = defaultdict(int)
total = 0
for i in range(len(nums)):
freq[nums[i]] += 1
total += nums[i]
if total % 2 == 0:
if freq[total // 2]:
return True
return False
nums = [3,2,10,4,1]
print(solve(nums))
Đầu vào
[3,2,10,4,1]
Đầu ra
True