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

关于编写Meera数组判断函数的技术求助

解决Meera数组判断问题

问题回顾

Meera数组定义:仅包含数字元素的数组,且数组中任意元素n的n*2值都不在数组内。

需求:编写checkMeera函数,接收数字数组参数,满足:

  • 若数组中不存在任何一对n和n*2,控制台输出"I am a Meera array"
  • 否则输出"I am NOT a Meera array"

解决方案

实现思路

  1. 将数组转换为Set集合,利用Set的O(1)查找效率提升性能
  2. 遍历数组中的每个元素,检查当前元素的2倍值是否存在于Set中
  3. 一旦找到符合条件的元素对,立即判定不是Meera数组并输出结果;遍历结束后未找到则判定是Meera数组

代码实现(JavaScript)

function checkMeera(arr) {
  const numSet = new Set(arr);
  for (const num of arr) {
    if (numSet.has(num * 2)) {
      console.log("I am NOT a Meera array");
      return;
    }
  }
  console.log("I am a Meera array");
}

代码解释

  • new Set(arr):把数组转为Set,既避免重复元素干扰,又能实现快速元素查找
  • 遍历数组每个元素num,检查num*2是否在Set中:
    • 如果存在,直接输出否定结果并终止函数
    • 遍历完成后未找到符合条件的元素对,输出肯定结果

测试示例

// 存在5和10,输出否定
checkMeera([10, 4, 0, 5]); 
// 无符合条件的元素对,输出肯定
checkMeera([7, 4, 9]); 
// 存在-3和-6,输出否定
checkMeera([1, -6, 4, -3]); 
// 包含0,0*2=0存在,输出否定
checkMeera([2, 0, 3]); 

内容的提问来源于stack exchange,提问作者Petros Ersamo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:23:18