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

求解:findUniqueValidNumbers函数参数N的作用?附实现代码

关于findUniqueValidNumbers函数参数N的疑问

我最近碰到一道编程题,需要实现带两个参数的findUniqueValidNumbers函数,已经写出能正常运行的代码,但始终搞不懂第一个参数N的用途。

我的实现代码

function findUniqueValidNumbers(N, arr) {
  const uniqueNums = new Set();
  const prevIndexes = {};
  
  for (let i = 0; i < arr.length; i++) {
    const num = arr[i];
      if (!prevIndexes.hasOwnProperty(num)) {
        // 首次出现该数字,加入有效集合
        uniqueNums.add(num);
        prevIndexes[num] = i;
      } else if (prevIndexes[num] % num === 0) {
        // 非首次出现,但前一次出现的索引能被数字整除,保留有效状态并更新索引
        uniqueNums.add(num);
        prevIndexes[num] = i;
      } else {
        // 前一次索引不能被数字整除,移除出有效集合
        uniqueNums.delete(num);
      }
  }
  
  return uniqueNums.size;
}

测试用例

findUniqueValidNumbers(5, [1, 2, 1, 2, 2]) // 输出 1
findUniqueValidNumbers(3, [1, 2, 3]) // 输出 3

原题翻译

定义函数findUniqueValidNumbers(N, arr):

  • N是数组arr的长度
  • arr是由正整数组成的数组

一个数字x被称为有效数字,当且仅当数组中任意两个x的出现位置i和j(满足i < j),都符合i % x == 0的条件。请返回数组中有效数字的唯一数量。

关于参数N的说明

你的代码逻辑完全正确,之所以没用到N,是因为题目里的N本质上就是数组arr的长度——题目把数组长度单独作为参数传入,可能是为了明确参数含义,或是编程题的常规设计习惯。你可以完全忽略N的存在,用arr.length代替它的作用,只要保留参数占位符合题目要求即可,不会影响代码的正确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:52:50