在原始陣列中檢查和為 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP