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

JavaScriptで合計が等しいサブアレイペア


整数の配列を唯一の引数として受け取るJavaScript関数を作成する必要があります。

関数は、2つのサブ配列に存在する要素の合計が等しくなるように、配列を2つのサブ配列に分割できる方法が存在するかどうかを判断する必要があります。要素をサブ配列に分割するときは、元の配列の要素が残っていないことを確認する必要があります。

例-

入力配列が-

の場合
const arr = [5, 3, 7, 4, 1, 8, 2, 6];

その場合、出力は-

になります。
const output = true;

必要なサブ配列は[5、3、4、6]と[7、1、8、2]であり、両方の合計が18に等しいためです。

以下はコードです-

const arr = [5, 3, 7, 4, 1, 8, 2, 6];
const canPartition = (arr = []) => {
   const sum = arr.reduce((acc, val) => acc + val);
   if (sum % 2 !== 0){
      return false;
   };
   const target = sum / 2;
   const array = new Array(target + 1).fill(false);
   array[0] = true;
   for (const num of arr) {
      if (array[target - num]){
         return true
      };
      for (let i = target; i >= num; i--) {
         array[i] = array[i - num];
      }
   }
   return false;
};
console.log(canPartition(arr));

出力

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

true

  1. JavaScriptConst

    JavaScriptのconst宣言は、他の値に再割り当てしたり、後で再宣言したりできない変数を作成します。 ES2015で導入されました。 以下はJavaScriptconst宣言のコードです- 例 <!DOCTYPE html> <html> <head> <style>    body {       font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;    } </sty

  2. JavaScriptでのConstとLet。

    Constとletは、ブロックスコープの変数を宣言するためにES2015で導入されました。 letを使用して宣言された変数は再割り当てできますが、constを使用して宣言された場合は再割り当てできません。 以下は、JavaScriptでletとconstを示すコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="wi