【リートコード】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() } }