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

题目要求:

解法一:

直接用 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];
};

猜你喜欢

转载自www.cnblogs.com/Leophen/p/11823622.html