给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。
示例 1:
输入: [3,2,1,5,6,4],
k = 2
输出: 5
示例 2:
输入: [3,2,3,1,2,4,5,5,6],
k = 4
输出: 4
var findKthLargest = function (nums, k) {
return nums.sort((a,b)=>a-b).reverse()[k-1]
};
想使用定时器来完成排序,遇到任务执行顺序问题,使用promise来解决异步编程问题--留下思路待解决
const arr = [3, 2, 3, 1, 2, 4, 5, 5, 6, 7, 7, 8, 2, 3, 1, 1, 1, 10, 11, 5, 6, 2, 4, 7, 8, 5, 6]
var findKthLargest = function (nums, k) {
const arr2 = []
nums.map(async item => {
new Promise((res, rej) => {
setTimeout(() => {
res(item)
}, item)
}).then(res => {
arr2.push(res)
console.log(arr2);
})
})
};
console.log(findKthLargest(arr, 2));
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/kth-largest-element-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。