在原始陣列中檢查和為 0 的子陣列 JavaScript


我們要求編寫一個 JavaScript 函式,該函式接受一個包含某些正值和負值的數字陣列。我們需要確定原始陣列中是否存在和為 0 的子陣列。

我們的函式應根據此進行返回布林值。

思路

這裡的思路很簡單。我們使用 for 迴圈遍歷陣列,計算直到該特定元素的累積和。並且如果在任何一點累積和變為 0 或獲得以前獲得的值,則存在和為 0 的子陣列。否則不存在和為 0 的子陣列。

因此,讓我們編寫此函式的程式碼 −

示例

const arr = [4, 2, -1, 5, -2, -1, -2, -1, 4, -1, 5, -2, 3];
const zeroSum = arr => {
   const map = new Map();
   let sum = 0;
   for(let i = 0; i < arr.length; i++){
      sum += arr[i];
      if(sum === 0 || map.get(sum)){
         return true;
      };
      map.set(sum, i);
   };
   return false;
};
console.log(zeroSum(arr));

輸出

控制檯中的輸出將為 −

true

更新於: 31-Aug-2020

359 次檢視

開啟你的 事業

完成課程即可獲得認證

開始
廣告
© . All rights reserved.