เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
จากนั้นฟังก์ชันควรลองลบองค์ประกอบดังกล่าวหนึ่งรายการออกจากอาร์เรย์ เมื่อนำองค์ประกอบดังกล่าวออก ผลรวมขององค์ประกอบที่ดัชนีคี่จะเท่ากับผลรวมขององค์ประกอบที่ดัชนีคู่ ในทางนั้น ฟังก์ชันควรนับวิธีการที่เป็นไปได้ทั้งหมดซึ่งเราสามารถลบองค์ประกอบทีละรายการเพื่อให้ได้ชุดค่าผสมที่จำเป็น
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr = [2, 6, 4, 2];
จากนั้นผลลัพธ์ควรเป็น 2 เพราะมีองค์ประกอบ 2 ตัวที่ 6 และ 2 ที่ดัชนี 1 และ 3 ตามลำดับที่ทำให้เป็นตารางชุดค่าผสม
เมื่อเราลบ 6 ออกจากอาร์เรย์ −
[2, 4, 2] so the sum at odd indices = sum at even indices = 4
เมื่อเราลบ 2 ออกจากอาร์เรย์ −
[2, 6, 4] so the sum at odd indices = sum at even indices = 6
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [2, 6, 4, 2];
const possibleWays = (arr = []) => {
const sum = new Array(arr.length);
let res = 0;
let oddSum = 0;
let evenSum = 0;
for (let i = 0; i < arr.length; ++i) {
if (i % 2 === 0) sum[i] = (evenSum += arr[i]);
else sum[i] = (oddSum += arr[i]);
}
for (let i = 0; i < arr.length; ++i) {
if (i % 2 === 0) {
if (2 * sum[i] - arr[i] + oddSum === 2 * (sum[i - 1] || 0) + evenSum) ++res;
} else if (2 * sum[i] - arr[i] + evenSum === 2 * (sum[i - 1] || 0) + oddSum) {
++res;
}
}
return res;
};
console.log(possibleWays(arr)); ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
2