陣列中的第K個最大元素
題目描述:給定整數陣列
nums
和整數k
,請返回陣列中第**k**
個最大的元素。請注意,你需要找的是陣列排序後的第
k
個最大的元素,而不是第k
個不同的元素。示例說明請見LeetCode官網。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/probl...
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
解法一:陣列排序
這裡首先考慮的是將原陣列排序,從排序後的陣列中就可以直接得到第k大的元素,所以具體處理過程如下:
- 首先使用排序演算法對該陣列排序,排序演算法有各種,比如氣泡排序、快速排序、歸併排序等等,這裡直接使用了java的庫函式對陣列進行排序,是偷懶的做法;
- 然後根據排序後的陣列索引,直接可以獲取到第K大的元素,並返回之。
import java.util.Arrays;
public class LeetCode_215 {
/**
* 陣列排序:首先使用排序演算法對該陣列排序,然後直接獲取第K大的元素返回即可
*
* @param nums 原陣列
* @param k 期望的第K大
* @return
*/
public static int findKthLargest(int[] nums, int k) {
// 排序演算法有各種,這裡直接使用了java的庫函式進行排序
Arrays.sort(nums);
// 排序後,直接返回第K大的元素
return nums[nums.length - k];
}
public static void main(String[] args) {
int[] nums = new int[]{3, 2, 1, 5, 6, 4};
// 測試用例,期望輸出: 5
System.out.println(findKthLargest(nums, 2));
}
}
【每日寄語】 缺乏鮮花與掌聲的演藝事業寂寞嗎?是的。但如果一直相信並堅持的話,就會默默地積蓄力量–就像爬山,跋涉前行。扛著一路冷清,尋找自我價值的迴歸。每個人都有一座或幾座山峰,需要不斷征服和超越。