Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

วิธีที่เป็นไปได้ทั้งหมดในการสร้างผลรวมขององค์ประกอบดัชนีคู่คี่ให้เท่ากันในอาร์เรย์ใน JavaScript


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