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

JavaScriptで配列のすべての可能なサブセットを検索する


最初で唯一の引数としてリテラルの配列を受け取るJavaScript関数を作成する必要があります。

関数は、元の配列から形成できるすべての可能なサブ配列の配列を作成して返す必要があります。

例-

入力配列が-

の場合
const arr = [1, 2, 3];

その場合、出力は-

になります。
const output = [
   [2],
   [1],
   [3],
   [1,2,3],
   [2,3],
   [1,2],
   [1, 3],
   []
];

サブアレイの順序はそれほど重要ではありません。

以下はコードです-

const arr = [1, 2, 3];
const findAllSubsets = (arr = []) => {
   arr.sort();
   const res = [[]];
   let count, subRes, preLength;
   for (let i = 0; i < arr.length; i++) {
      count = 1;
      while (arr[i + 1] && arr[i + 1] == arr[i]) {
         count += 1;
         i++;
      }
      preLength = res.length;
      for (let j = 0; j < preLength; j++) {
         subRes = res[j].slice();
         for (let x = 1; x <= count; x++) {
            if (x > 0) subRes.push(arr[i]);
            res.push(subRes.slice());
         }
      }
   };
   return res;
};
console.log(findAllSubsets(arr));

出力

以下はコンソール出力です-

[
   [], [ 1 ],
   [ 2 ], [ 1, 2 ],
   [ 3 ], [ 1, 3 ],
   [ 2, 3 ], [ 1, 2, 3 ]
]

  1. JavaScriptで数値の配列から欠落している要素を見つける

    nなどの長さの数値の配列を受け取るJavaScript関数を作成する必要があります。配列には0からnまでのすべての整数(0とnの両方を含む)が含まれていますが、欠落している整数は1つだけであり、任意の数値にすることができ、配列はソートされません。この関数のタスクは、欠落している数値を見つけて、線形時間と定数空間で返すことです。 配列には0からnまでの1つを除くすべての数値が含まれているため、線形時間で配列のすべての要素の合計を簡単に計算できます。 そして、不定の時間と空間で計算できる最初のn個の自然数の合計からそれを引くことができます。両者の違いは、不足している番号になります。 例 以下

  2. JavaScriptで配列内のすべてのピークとその位置を見つける

    ビルドアップ JavaScriptに次の配列があるとします- const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4]; この配列の点をy軸にプロットし、隣接する各点をx軸上で単位距離だけ離すと、グラフは次のようになります- このグラフは、この配列のインデックス3と7に、それぞれ値7と4の2つの極大値(ピーク)が存在することを明確に示しています。 問題 整数の配列arrを最初で唯一の引数として受け取るJavaScript関数を作成する必要があります。 この関数は、最大値と位置の2つのプロパティを含むオブジェクトを返すことになっています。