Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem mảng có một phần tử bằng tổng của tất cả các phần tử còn lại trong Python hay không

Giả sử chúng ta có một mảng gọi là nums, chúng ta phải kiểm tra xem mảng có chứa một phần tử có giá trị bằng tổng của tất cả các phần tử khác hay không.

Vì vậy, nếu đầu vào giống như nums =[3,2,10,4,1], thì đầu ra sẽ là True, 10 =(3 + 2 + 4 + 1).

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • freq:=một bản đồ trống
  • tổng số:=0
  • đối với tôi trong phạm vi từ 0 đến kích thước là nums - 1, thực hiện
    • freq [nums [i]]:=freq [nums [i]] + 1
    • tổng số:=total + nums [i]
  • nếu tổng số là số chẵn thì
    • nếu freq [quotient of (total / 2)] khác 0, thì
      • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

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