You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编程实现:移除数组中出现次数超过n次的所有元素

问题需求
  • 需按照指定格式实现JS函数function answer(data, n)
  • 核心功能:移除数组中所有出现次数超过阈值n的元素
  • 给定测试用例:输入数组[1,1,2,2,3,4]、阈值n=1时,函数需返回结果[3,4]
实现思路
  • 采用两次遍历的方案,时间复杂度为O(n),性能稳定
  • 第一次遍历输入数组,用Map结构统计每个元素的出现频次
  • 第二次遍历原数组做过滤,仅保留出现频次小于等于阈值n的元素,全程保留元素在原数组中的相对顺序
  • 自动兼容边界场景:输入空数组、阈值为0时都能返回符合逻辑的结果
代码实现
function answer(data, n) {
  const frequency = new Map();
  // 统计每个元素的出现次数
  for (const item of data) {
    frequency.set(item, (frequency.get(item) || 0) + 1);
  }
  // 过滤符合频次要求的元素
  return data.filter(item => frequency.get(item) <= n);
}
效果验证
  • 示例调用:执行answer([1,1,2,2,3,4], 1),返回结果为[3,4],完全符合预期
  • 扩展场景测试:执行answer([1,2,2,3,3,3,4], 2),返回结果为[1,2,2,4],其中出现3次的3因为超过阈值2被移除,逻辑正确

内容的提问来源于stack exchange,提问作者abid hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:54:18