代码优化 - 求数组中的第 K 个最大元素

2019-11-13 21:15:47 浏览数 (1)

题目要求:

解法一:

直接用 sort 从大到小排序,取第 k 个

代码语言:javascript复制
var findKthLargest = function (nums, k) {
      nums.sort((a, b) => { return b - a });
      return nums[k - 1];
};

解法二(优化性能):

使用冒泡排序,取倒数第 k 个

代码语言:javascript复制
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];
};

0 人点赞