เราจำเป็นต้องเขียนฟังก์ชัน 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