代碼優化 – 求數組中的第 K 個最大元素

  • 2019 年 11 月 13 日
  • 筆記

題目要求:

解法一:

直接用 sort 從大到小排序,取第 k 個

var findKthLargest = function (nums, k) {        nums.sort((a, b) => { return b - a });        return nums[k - 1];  };

解法二(優化性能):

使用冒泡排序,取倒數第 k 個

var findKthLargest = function (nums, k) {    for (var i = nums.length - 1; i > nums.length - k - 1; i--) {      var temp;      for (var j = 0; j < i; j++) {        if (nums[j] > nums[j + 1]) {          temp = nums[j + 1];          nums[j + 1] = nums[j];          nums[j] = temp;        }      }    }    return nums[nums.length - k];  };