สมมติว่าเรามีอาร์เรย์ที่ไม่เรียงลำดับ เราต้องหาองค์ประกอบที่ใหญ่ที่สุดลำดับที่ k จากอาร์เรย์นั้น ดังนั้นหากอาร์เรย์คือ [3,2,1,5,6,4] และ k =2 ผลลัพธ์จะเป็น 5
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- เราจะจัดเรียงองค์ประกอบ
- ถ้า k เป็น 1 ให้คืนค่าองค์ประกอบสุดท้าย ไม่เช่นนั้นให้คืนค่าอาร์เรย์[n – k] โดยที่ n คือขนาดของอาร์เรย์
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution(object): def findKthLargest(self, nums, k): nums.sort() if k ==1: return nums[-1] temp = 1 return nums[len(nums)-k] ob1 = Solution() print(ob1.findKthLargest([56,14,7,98,32,12,11,50,45,78,7,5,69], 5))
อินพุต
[56,14,7,98,32,12,11,50,45,78,7,5,69] 5
ผลลัพธ์
50