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

左右のサブアレイ合計積-JavaScript


長さN(Nは偶数である必要があります)の数の配列を受け取り、その配列をそれぞれN / 2個の要素を含む2つのサブ配列(左と​​右)に分割し、合計を行うJavaScript関数を作成する必要があります。サブ配列を作成してから、両方のサブ配列を乗算します。

例:入力配列が-

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

その場合、出力は-

になります。
(2+1) * (3+4)
= 21

以下はコードです-

const arr = [1, 2, 3, 4]
const subArrayProduct = arr => {
   const { length: l } = arr;
   const creds = arr.reduce((acc, val, ind) => {
      let { left, right } = acc;
      if(ind < l/2){
         left += val;
      }else{
         right += val;
      }
      return { left, right };
   }, {
         left: 0,
         right: 0
   });
   return creds.left * creds.right;
};
console.log(subArrayProduct(arr));

出力

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

21

  1. JavaScriptを使用した循環配列の最大サブ配列合計

    問題 最初で唯一の引数として、整数の配列arrを受け取るJavaScript関数を作成する必要があります。 この配列arrは循環配列と見なすことができます。つまり、配列の最後の要素の後に最初の要素が続きます。この関数は、空でないarrのサブ配列の可能な最大合計を見つけて返す必要があります。 たとえば、関数への入力が 入力 const arr = [2, -2, 3, -1]; 出力 const output = 4; 出力の説明 目的のサブアレイは[3、-1、2]であるため 例 const arr = [2, -2, 3, -1]; const maxSubarraySum

  2. JavaScriptのターゲットよりわずかに少ないサブ配列の製品

    問題 最初の引数として数値の配列arrを取り、2番目の引数として数値のtargetを受け取るJavaScript関数を作成する必要があります。 この関数は、サブアレイ内のすべての要素の積がターゲットよりも少ない(連続した)サブアレイの数をカウントして返すことになっています。 たとえば、関数への入力が 入力 const arr = [10, 5, 2, 6]; const target = 100; 出力 const output = 8; 出力の説明 積が100未満の8つのサブアレイは- [10], [5], [2], [6], [10, 5], [5, 2], [2, 6