代码优化 – 求数组中的第 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];  };