LeetCode——数组中的第K个最大元素(JS实现)

简介: LeetCode——数组中的第K个最大元素(JS实现)

题目描述

image.png

解题思路

  • 本题思路较为简单,首先对数组按照从小到大进行排序。
  • 使用reverse将数组进行反转。
  • 返回反转数组的第k-1个元素即可。
  • 本次没有采取JS自带的sort,而是自己实现了快速排序。

解题代码

var findKthLargest = function (nums, k) {
    // 快速排序
    function sort(nums, Left, Right) {
        let l = Left;
        let r = Right;
        let pivot = nums[l];
        if (l >= r) return;
        while (l < r) {
            while (nums[r] >= pivot && l < r) {
                r--;
            }
            if (nums[r] < pivot) {
                nums[l] = nums[r];
                l++;
            }
            while (nums[l] <= pivot && l < r) {
                l++;
            }
            if (nums[l] > pivot) {
                nums[r] = nums[l];
                r--;
            }
            if (l === r) {
                nums[l] = pivot
            }
        }
        sort(nums, Left, l - 1);
        sort(nums, r + 1, Right);
    }
    sort(nums,0,nums.length-1);
    nums
    return nums.reverse()[k-1]
};
复制代码

题目反思

  • 熟练掌握快速排序。
  • 熟练使用JS中的各种常用API。
相关文章
|
1天前
|
存储 JavaScript 前端开发
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
6 0
|
2天前
|
算法
leetcode代码记录(寻找两个正序数组的中位数
leetcode代码记录(寻找两个正序数组的中位数
9 2
|
2天前
|
索引
leetcode代码记录(最长重复子数组
leetcode代码记录(最长重复子数组
5 0
|
2天前
leetcode代码记录(下一个更大元素 II
leetcode代码记录(下一个更大元素 II
4 0
|
2天前
|
索引
leetcode代码记录(下一个更大元素 I
leetcode代码记录(下一个更大元素 I
4 0
|
2天前
leetcode代码记录(两个数组的交集
leetcode代码记录(两个数组的交集
7 1
|
2天前
leetcode代码记录(最大子数组和
leetcode代码记录(最大子数组和
8 2
|
2天前
leetcode代码记录(移除链表元素
leetcode代码记录(移除链表元素
8 0
|
2天前
leetcode代码记录(移除元素
leetcode代码记录(移除元素
6 0
|
2天前
|
JavaScript 前端开发 索引
js添加、删除、替换、插入元素的方法
js添加、删除、替换、插入元素的方法
9 0

热门文章

最新文章