Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Loại bỏ một phần tử để trung bình bằng k trong Python


Cho danh sách nums và số nguyên k, kiểm tra xem có thể xóa đúng một phần tử để trung bình của các phần tử còn lại chính xác bằng k hay không. Ràng buộc: 2 <= n <= 1000, nums[i], k <= 1,000,000.

Ví dụ, [5,3,2,4,6,10], k = 4, đầu ra True (xóa 10 -> trung bình (5+3+2+4+6)/5 = 4).

Các bước giải quyết:

  • s := sum(nums).
  • t := k * (len(nums) - 1).
  • Duyệt từng i trong nums:
    • Nếu s - i == t, trả về True.
  • Trả về False.

Ví dụ minh họa

class Solution:
    def solve(self, nums, k):
        s = sum(nums)
        t = k * (len(nums) - 1)
        for i in nums:
            if s - i == t:
                return True
        return False

ob = Solution()
nums = [5, 3, 2, 4, 6, 10]
k = 4
print(ob.solve(nums, k))

Đầu vào

[5,3,2,4,6,10], 4

Đầu ra

True