Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหา k โดยที่องค์ประกอบ k มีค่าอย่างน้อย k ใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า 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