ให้ลิสต์ nums (non-negative) หา k ที่มีสมาชิกใน nums ที่ ≥ k อยู่พอดี k ตัว หาไม่เจอ → -1
ตัวอย่าง: nums=[6,4,0,8,2,9] → 4 (มี 4 ตัว ≥ 4: 6,4,8,9)
ขั้นตอน (Sort + Scan)
- เรียง
numsเรียงมากไปน้อย - วน
iจาก 1 ถึงlen(nums)-1:- ถ้า
i > nums[i-1]: หยุด (ไม่มีคำตอบต่อไป) - ถ้า
i > nums[i]: คืนi
- ถ้า
ตัวอย่างโค้ด
def solve(nums):
nums.sort(reverse=True)
for i in range(1, len(nums)):
if i > nums[i-1]:
break
elif i > nums[i]:
return i
return -1
nums = [6, 4, 0, 8, 2, 9]
print(solve(nums)) # Output: 4อินพุต
[6, 4, 0, 8, 2, 9]
เอาต์พุต
4