题目:
    给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
    请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

    示例 1:
    输入: [3,2,1,5,6,4] 和 k = 2 输出: 5

    示例 2:
    输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4

    提示:

    • 1 <= k <= nums.length <= 104
    • -104 <= nums[i] <= 104

    解法
    方案一:
    最简单,先排序之后再到对应的位置取值

    1. let findKthLargest = function (nums,k) {
    2. nums.sort((a,b) => b - a); //降序排序
    3. return nums[k-1];
    4. }
    5. console.log(findKthLargest([3,2,3,1,2,4,5,5,6],4));
    6. console.log(findKthLargest( [3,2,1,5,6,4],2));
    7. //两者的原理相同只是排序不同导致获取对应位置的方式不同
    8. let findKthLargest = function (nums,k) {
    9. nums.sort((a,b) => a - b); //升序排序
    10. return nums[nums.length -k];
    11. }
    12. console.log(findKthLargest([3,2,3,1,2,4,5,5,6],4));
    13. console.log(findKthLargest( [3,2,1,5,6,4],2));

    方案二:
    使用冒泡排序

    1. var findKthLargest = function (nums, k) {
    2. // 冒泡排序
    3. // 从后往前确定元素
    4. for (let i = nums.length - 1; i >= nums.length - k; i--) {
    5. // 从前往后,相邻两个元素比较,交换
    6. for (let j = 0; j < i; j++) {
    7. if (nums[j] > nums[j + 1]) {
    8. [nums[j], nums[j + 1]] = [nums[j + 1], nums[j]];
    9. }
    10. }
    11. }
    12. return nums[nums.length-k];
    13. };
    14. console.log(findKthLargest([3, 2, 1, 5, 6, 4], 2));
    15. console.log(findKthLargest([3,2,3,1,2,4,5,5,6],4));