สมมติว่าเรามีรายการสมาชิกชื่อ nums และค่า k เราต้องการหาสมาชิกที่เกิดขึ้นอย่างน้อย k ครั้ง
ตัวอย่างเช่น หาก nums = [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1] และ k = 3 ผลลัพธ์จะเป็น [2, 5, 6, 3]
ขั้นตอนการแก้ปัญหา
- c := รายการที่เก็บความถี่ของแต่ละสมาชิกใน nums (ใช้ Counter)
- res := รายการใหม่สำหรับเก็บผลลัพธ์
- สำหรับแต่ละ key n ใน c:
- ถ้า c[n] >= k ให้เพิ่ม n เข้าไปใน res
- คืนค่า res
ตัวอย่างโค้ด
from collections import Counter
def solve(nums, k):
c = Counter(nums)
res = []
for n in c:
if c[n] >= k:
res.append(n)
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,2,6,1,3,6,3,8,2,5,9,3,5,1], 3
เอาต์พุต
[2, 5, 6, 3]