【リートコード】215。配列内のK番目に大きい要素



Leetcode 215 Kth Largest Element An Array



を見つける ソートされていない配列の中で最大の要素。これは、k番目の個別の要素ではなく、ソートされた順序でk番目に大きい要素であることに注意してください。

例1:



[3,2,1,5,6,4]

例2:

[3,2,3,1,2,4,5,5,6]

注意:
kは常に有効であり、1≤k≤配列の長さであると想定できます。



解決策は次のとおりです。

アイデア1:並べ替えを使用する

class Solution { public int findKthLargest(int[] nums, int k) { int n = nums.length Arrays.sort(nums) return nums[n-k] } }

アイデア2:優先キューを使用する



class Solution { public int findKthLargest(int[] nums, int k) { PriorityQueue queue = new PriorityQueue() for(int num:nums) { queue.offer(num) if(queue.size() > k) { queue.poll() } } return queue.peek() } }