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ạiFalse.
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