JavaScript 中和值子陣列對
我們需要編寫一個 JavaScript 函式,該函式以整數陣列作為唯一引數。
該函式應當確定是否存在一種方法,將陣列分成兩個子陣列,使得兩個子陣列中元素之和相等。在將元素劃分為子陣列時,我們必須確保原始陣列中的所有元素都沒有遺漏。
例如:
如果輸入陣列為:
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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP