在数组中找到第 k 大的元素
给出数组 [9,3,2,4,8],第三大的元素是 4
给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推
/**
* @param n: An integer
* @param nums: An array
* @return: the Kth largest element
*/
const kthLargestElement = function(n, nums) {
// write your code here
};
const kthLargestElement = function(n, nums) {
let value;
// 遍历n次,移除n个最大值,最终value即为第n大元素
for (let i = 0; i < n; i++) {
let item = Math.max(...nums); // 取出最大值
value = nums.splice(nums.indexOf(item), 1)[0]; // 删除并保存最大值
}
return value;
};
console.log(
'输出',
kthLargestElement(3, [9, 3, 2, 4, 8]),
kthLargestElement(1, [1, 3, 4, 2])
);
const kthLargestElement = function(n, nums) {
// 降序
nums.sort((a, b) => {
return b - a;
});
return nums[n - 1]; // 第n大(数组从0开始)
};
console.log(
'输出',
kthLargestElement(3, [9, 3, 2, 4, 8]),
kthLargestElement(1, [1, 3, 4, 2])
);
觉得还不错的话,给我的项目点个star吧
本文分享自 OBKoro1前端进阶积累 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!