JavaScript 中所有可能的奇數長度子陣列總和


我們要求編寫一個 JavaScript 函式,其中以整數陣列作為唯一引數。

該函式應首先排列原始陣列中所有可能的長度為奇數的子陣列。然後,該函式應找到這些子陣列中所有元素的總和並返回該總和。

例如 −

如果輸入陣列為 −

const arr = [1, 2, 3];

那麼輸出應該是 −

const output = 12;

因為所需的子陣列是 [1]、[2]、[3]、[1, 2, 3]

示例

以下是程式碼 −

const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3, 4, 5, 6];
const sumOfOddLengthSubarrays = (arr = []) => {
   let res = 0;
   for(let i = 0; i < arr.length; i++){
      let sum = 0;
      for(let j = i; j < arr.length; j++){
         sum += arr[j];
         if (((j - i + 1) & 1) === 0) {
            continue;
         };
         res += sum;
      }
   };
   return res;
};
console.log(sumOfOddLengthSubarrays(arr1));
console.log(sumOfOddLengthSubarrays(arr2));

輸出

以下是控制檯輸出 −

12
98

更新於: 2021 年 1 月 27 日

344 瀏覽次數

啟動你的職業生涯

透過完成教程獲得認證

開始
廣告