Giả sử chúng ta có một mảng num và một giá trị k, chúng ta phải kiểm tra xem các phần tử trong nums có thể được tạo thành 0 hay không bằng cách thực hiện thao tác sau chính xác k số lần.
- Phép toán:Phần tử nhỏ nhất trong số num sẽ bị trừ khỏi tất cả các giá trị khác 0 của nums.
Vì vậy, nếu đầu vào giống như nums [2, 2, 3, 5] k =3, thì đầu ra sẽ là True vì lúc đầu xóa 2 khỏi mảng, vì vậy mảng sẽ là [0, 0, 1, 3], sau đó xóa 1 để nhận [0, 0, 0, 2], rồi lại xóa 2 để nhận [0, 0, 0, 0].
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu có k số phần tử phân biệt 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
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