LeetCode-215-陣列中的第K個最大元素

雄獅虎豹發表於2022-04-24

陣列中的第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));
    }
}
【每日寄語】 缺乏鮮花與掌聲的演藝事業寂寞嗎?是的。但如果一直相信並堅持的話,就會默默地積蓄力量–就像爬山,跋涉前行。扛著一路冷清,尋找自我價值的迴歸。每個人都有一座或幾座山峰,需要不斷征服和超越。

相關文章