สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ซึ่งมีเฉพาะตัวเลขที่ไม่เป็นค่าลบ หากมีองค์ประกอบจำนวน k ในจำนวนที่มากกว่าหรือเท่ากับ k ให้หาค่า k หากเราไม่พบเช่นนั้น ให้คืนค่า -1
ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[6, 4, 0, 8, 2, 9] ผลลัพธ์จะเป็น 4 เพราะมีองค์ประกอบ 4 ตัวที่มากกว่าหรือเท่ากับ 4:[6, 4, 8, 9].
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
เรียงลำดับรายการในลำดับย้อนกลับ
-
สำหรับฉันในช่วง 1 ถึงขนาดของ nums - 1 ทำ
-
ถ้าฉัน> nums[i - 1] แล้ว
-
ออกจากวง
-
-
มิฉะนั้น เมื่อ i> nums[i] แล้ว
-
กลับมา
-
-
-
กลับ -1
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
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))
อินพุต
[6, 4, 0, 8, 2, 9]
ผลลัพธ์
4