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

配列JavaScriptでサブ配列の次数を見つける


リテラルの配列の次数は、その要素のいずれかの最大頻度として定義されます。

const arr = [1, 2, 3, 3, 5, 6, 4, 3, 8, 3];

この配列では3が4回繰り返されるため、この配列の次数は4です。

リテラルの配列を受け取るJavaScript関数を作成する必要があります。この関数のタスクは、配列全体と同じ次数の配列から、最小の連続サブ配列の長さを見つけることです。

const arr = [1, 2, 3, 3, 5, 6, 4, 3, 8, 3];
const findShortestSubArray = (arr = []) => {
   let range = new Map(), maxDegree = 0, minLength = Infinity;
   for(let i = 0; i < arr.length; i++){ if(range.has(arr[i])) {
      let start = range.get(arr[i])[0];
      let degree = range.get(arr[i])[2]; degree++;
      range.set(arr[i], [start, i, degree]);
      if(degree > maxDegree)
         maxDegree = degree;
      }
      else {
         let degree = 1;
         range.set(arr[i],[i, i, degree]); if(degree > maxDegree)
         maxDegree = degree;
      }
   }
   for (let key of range.keys()){
      let val = range.get(key)
      if(val[2] === maxDegree){
         let diff = (val[1] - val[0]) + 1;
         if(diff < minLength) minLength = diff;
      }
   }
   return minLength;
};
console.log(findShortestSubArray(arr));

出力

そして、コンソールの出力は-

になります
8

  1. JavaScript array.keys()

    JavaScriptのarray.keys()メソッドは、配列のキーを持つArrayIteratorオブジェクトを返すために使用されます。 構文は次のとおりです- array.keys() ここで、JavaScriptでarray.keys()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body>    <h2>Car Variants</h2>    <p id="test"></p>   &nb

  2. JavaScript Array.isArray()

    JavaScriptのArray.isArray()メソッドは、オブジェクトが配列であるかどうかを判断するために使用されます。 構文は次のとおりです- Array.isArray(ob) 上記のobパラメータはテスト対象です。 ここで、JavaScriptでArray.isArray()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body>    <h2>Ranking Points</h2>    <p>Is this an array?