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

Kiểm tra mảng có thể biến thành toàn 0 sau k phép toán trong Python

Cho mảng nums và số k. Mỗi phép toán: trừ giá trị nhỏ nhất khác 0 trong mảng khỏi tất cả các phần tử khác 0. Kiểm tra xem sau đúng k phép toán có thể làm mảng toàn 0 hay không.

Quan sát: số phép toán cần thiết chính bằng số lượng giá trị khác nhau trong mảng.

Ví dụ: nums = [2,2,3,4], k = 3 → các giá trị khác nhau: {2,3,4} → 3 phép → True.

Giải thuật

  • Đếm số phần tử khác nhau trong mảng (dùng set).
  • Nếu số lượng khác nhau bằng k → True, ngược lại False.

Mã ví dụ

def solve(nums, k):
    distinct = set(nums)
    if len(distinct) == k:
        return True
    return False

nums = [2, 2, 3, 4]
k = 3
print(solve(nums, k))

Đầu vào

[2, 2, 3, 4], 3

Đầu ra

True