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

JavaScript多数決要素を持つ配列を決定し、同じ配列内にある場合はTRUEを返します


反復値を持つ数値の配列を受け取り、(n / 2)回以上出現する数値を返すJavaScript関数を作成する必要があります。ここで、nは配列の長さです。配列にそのような要素がない場合、関数はfalseを返す必要があります

この関数のコードを書いてみましょう-

const arr = [12, 5, 67, 12, 4, 12, 4, 12, 6, 12, 12];
const arr1 = [3, 565, 7, 23, 87, 23, 3, 65, 1, 3, 6, 7];
const findMajority = arr => {
   let maxChar = -Infinity, maxCount = 1;
   // this loop determines the possible candidates for majorityElement
   for(let i = 0; i < arr.length; i++){
      if(maxChar !== arr[i]){
         if(maxCount === 1){
            maxChar = arr[i];
         } 0else {
            maxCount--;
      };
      } else {
         maxCount++;
      };
   };
   // this loop actually checks for the candidate to be the majority
   element
   const count = arr.reduce((acc, val) => maxChar===val ? ++acc : acc, 0);
   return count > arr.length / 2;
};
console.log(findMajority(arr));
console.log(findMajority(arr1));

出力

コンソールの出力は-

になります
true
false

  1. 配列から数値を削除し、残りの数値をJavaScriptにシフトします

    最初の引数として数値の配列を取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。 関数は、2番目の引数で指定された数が配列に存在する場合、それを削除し、すべての要素を右に1つ左にシフトする必要があります。唯一の条件は、slice()、spliceなどのArrayメソッドを使用できないことです。 配列に番号のインスタンスが複数存在する場合は、最初のインスタンスを削除する必要があります。 例- 入力配列が-の場合 const arr = [3, 5, 6, 3, 7, 8, 8, 6]; const num = 7; 次に、配列は-になります。 con

  2. JavaScriptで設定されている最長の長さを見つけて返す

    問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 長さNの配列arrには、0からN-1までのすべての整数が含まれています。私たちの関数は、集合Sの最長の長さを見つけて返すことになっています。ここで、S [i] ={A [i]、A [A [i]]、A [A [A [i]]]、...}以下のルールに。 Sの最初の要素がインデックス=iの要素A[i]の選択で始まり、Sの次の要素はA [A [i]]であり、次にA [A[A[i]]]…であると仮定します。同様に、Sで重複要素が発生する直前に追加を停止します。 たとえば、関数への入力が-の