首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >算法-第k大元素(中等)

算法-第k大元素(中等)

作者头像
OBKoro1
发布于 2020-10-27 03:59:30
发布于 2020-10-27 03:59:30
34900
代码可运行
举报
运行总次数:0
代码可运行

第 k 大元素

难度:中等

描述:

在数组中找到第 k 大的元素

样例:

给出数组 [9,3,2,4,8],第三大的元素是 4

给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推

思路分析:

代码模板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @param n: An integer
 * @param nums: An array
 * @return: the Kth largest element
 */
const kthLargestElement = function(n, nums) {
  // write your code here
};

想一想再看答案

想一想再看答案

想一想再看答案

代码:

  1. 从大到小,移除n个最大值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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])
);
  1. sort排序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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吧

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OBKoro1前端进阶积累 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
算法_两数之和&中位数
你需要实现的函数 twoSum 需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。
OBKoro1
2020/10/27
3090
算法-统计数字(中等)
在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现 1 出现了 5 次 (1, 10, 11, 12)
OBKoro1
2020/10/27
3970
算法-爬楼梯 2
一个小孩爬一个 n 层台阶的楼梯。他可以每次跳 1 步, 2 步 或者 3 步。实现一个方法来统计总共有多少种不同的方式爬到最顶层的台阶
OBKoro1
2020/10/27
4560
算法-丑数(中等)
我再提供多一些数据:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24]
OBKoro1
2020/10/27
3700
算法-判断字符串的循环移动
可以检验某个单词是否为另一个单词的子字符串。给定 s1 和 s2,请设计一种方法来检验 s2 是否为 s1 的循环移动后的字符串。
OBKoro1
2020/10/27
7900
三刷”数组中的第K个最大元素“,我终于学会了堆排序
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
虎妞先生
2022/10/27
5610
三刷”数组中的第K个最大元素“,我终于学会了堆排序
算法—第一个只出现一次的字符
第一个只出现一次的字符 难度:简单 描述: 给出一个字符串,找出第一个只出现一次的字符。 样例: 对于 aabc, b为第一个只出现一次的字符. 对于 abaccdeff, b为第一个只出现一次的字符. 思路分析: 可以用对象保存字符出现的次数。 代码模板: const firstUniqChar = function(str) {}; 想一想再看答案 想一想再看答案 想一想再看答案 代码: 将值删除,用 indexOf 查找还有没有相同字符,并查找之前删过的字符 const firstUniqChar
OBKoro1
2020/10/27
5590
算法-原地删除数组元素
切勿直接使用数组的length属性,因为被删除后length属性会减少,导致遍历提前结束,删除不彻底。
OBKoro1
2020/10/27
1K0
算法_爬楼梯
假设你正在爬楼梯,需要 n 步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
OBKoro1
2020/10/27
3480
一天一大 leet(数组中的第 K 个最大元素)难度:中等 DAY-29
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
前端小书童
2020/09/24
3960
一天一大 leet(数组中的第 K 个最大元素)难度:中等 DAY-29
算法-相亲数
一对整数是相亲数是说他们各自的所有有效因子(除了自己以外的因子)之和等于另外一个数。比如(220, 284)就是一对相亲数。
OBKoro1
2020/10/27
9110
JS数组操作
当前字符串中包含字母和数字, 用一个方法实现出现最多的字母和数字 a)如果只有字母, 那么只返回出现最多的字母, 只有数字情况同理 b)如果有相同次数多的字母或数字出现,将按照第一次出现的顺序返回 列表如下:
epoos
2022/06/06
9.5K0
前端算法专栏-数组-215. 数组中的第K个最大元素
很多朋友也是看着这套系列算法拿到很多offer!所以也是想分享给更多朋友,帮助到有需要的朋友。
程序员库里
2023/11/28
2520
算法-落单的数
给出 2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
OBKoro1
2020/10/27
3590
算法—字符串压缩
例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。
OBKoro1
2020/10/27
2.2K0
算法_比较字符串&字符串密钥格式
比较两个字符串 A 和 B,确定 A 中是否包含 B 中所有的字符。字符串 A 和 B 中的字符都是 大写字母
OBKoro1
2020/10/27
9610
LeetCode *703. 数据流中的第 K 大元素(堆)
设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。
SakuraTears
2022/01/13
5600
数组中的第K个最大元素
在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。
WindRunnerMax
2020/08/27
1.4K0
LeetCode刷题(二) JavaScript
通过递归实现:判断 list1 和 list2 那个链表的头结点的值更小,然后递归下去决定下一个添加到结果的节点,当两个链表中有为空时,递归结束。
赤蓝紫
2023/01/05
3310
2025-01-24:最小元素和最大元素的最小平均值。用go语言,你有一个空的浮点数数组 averages,以及一个包含偶数个整
2025-01-24:最小元素和最大元素的最小平均值。用go语言,你有一个空的浮点数数组 averages,以及一个包含偶数个整数的数组 nums。你需要执行以下步骤,重复 n/2 次:
福大大架构师每日一题
2025/02/05
700
2025-01-24:最小元素和最大元素的最小平均值。用go语言,你有一个空的浮点数数组 averages,以及一个包含偶数个整
相关推荐
算法_两数之和&中位数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档