Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

線形時間JavaScriptで配列内の最初の重複アイテムを検索する


1からnまでのn+1個の整数の読み取り専用配列を受け取るJavaScript関数を作成する必要があります。

関数は、線形時間で繰り返され、最大でO(n)スペースを使用する1つの数値を見つける必要があります。

たとえば、入力配列が-

の場合
const arr = [3 4 1 4 1];

その場合、出力は-

になります。
const output = 1;

(上記のように)考えられる答えが複数ある場合は、いずれか1つを出力する必要があります。重複がない場合は、-1を出力する必要があります。

const arr = [3, 4, 1, 4, 1];
const findRepeatedNumber = (arr = []) => {
   const set = new Set();
   for (const item of arr) {
      if (set.has(item)){
         return item;
      };
      set.add(item);
   };
   return -1;
};
console.log(findRepeatedNumber(arr));

出力

これにより、次の出力が生成されます-

4

  1. JavaScript配列find()関数

    JavaScriptのfind()メソッドは、条件が渡された場合は配列の最初の要素値を返すために使用されます。それ以外の場合、戻り値は未定義です。構文は次のとおりです- array.find(function(val, index, arr),thisValue) ここで、functionは、現在の要素の値であるvalを持つ関数です。インデックスは配列インデックスであり、arrは配列です。 this valueパラメータは、関数に渡される値です。 例 <!DOCTYPE html> <html> <body>    <h2>

  2. JavaScriptのArray.prototype.find()メソッド。

    Array.prototype.find()メソッドは、配列内の特定の条件を満たす最初の要素値を返します。 以下は、Array.prototype.find()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /&g