Cho danh sách nums và số nguyên k. Trả về danh sách các phần tử xuất hiện ít nhất k lần. Thứ tự các phần tử trong kết quả không quan trọng.
Ví dụ: nums = [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1], k = 3 → kết quả [2, 5, 6, 3].
Thuật toán
- Dùng
Countertừcollectionsđể đếm tần suất. - Duyệt qua các cặp
(phần_tử, số_lần), giữ lại những phần tử cósố_lần >= k.
Ví dụ mã nguồn
from collections import Counter
def solve(nums, k):
c = Counter(nums)
res = [n for n, cnt in c.items() if cnt >= k]
return res
nums = [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1]
k = 3
print(solve(nums, k)) # [2, 5, 6, 3]
Đầu vào / Đầu ra
Input: [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1], 3
Output: [2, 5, 6, 3]