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。
相关文章
|
3天前
|
存储
力扣 合并两个有序数列||移除元素
力扣 合并两个有序数列||移除元素
9 0
|
4天前
|
JavaScript 前端开发
JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式
【5月更文挑战第11天】JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式。map() 用于创建新数组,其中元素是原数组元素经过指定函数转换后的结果;filter() 则筛选出通过特定条件的元素生成新数组;reduce() 将数组元素累计为单一值。这三个方法使代码更简洁易读,例如:map() 可用于数组元素乘以 2,filter() 用于选取偶数,reduce() 计算数组元素之和。
11 2
|
4天前
|
JavaScript
通过使用online表单的获取使用,了解vue.js数组的常用操作
通过使用online表单的获取使用,了解vue.js数组的常用操作
|
4天前
|
存储 JavaScript 前端开发
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
9 0
|
4天前
|
算法
leetcode代码记录(寻找两个正序数组的中位数
leetcode代码记录(寻找两个正序数组的中位数
13 2
|
4天前
|
索引
leetcode代码记录(最长重复子数组
leetcode代码记录(最长重复子数组
12 0
|
4天前
leetcode代码记录(下一个更大元素 II
leetcode代码记录(下一个更大元素 II
8 0
|
4天前
|
索引
leetcode代码记录(下一个更大元素 I
leetcode代码记录(下一个更大元素 I
8 0
|
4天前
leetcode代码记录(两个数组的交集
leetcode代码记录(两个数组的交集
9 1
|
4天前
leetcode代码记录(最大子数组和
leetcode代码记录(最大子数组和
11 2

热门文章

最新文章