Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การบรรลุผลรวมคู่สูงสุดที่เป็นไปได้ใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็ม arr ซึ่งมีความยาว 2n เป็นอาร์กิวเมนต์เดียว

ภารกิจของฟังก์ชันคือจัดกลุ่มจำนวนเต็มเหล่านี้เป็น n คู่ของจำนวนเต็ม เช่น (a1, b1), (a2, b2), ..., (an, bn) ซึ่งทำให้ผลรวมของ min(ai, bi) สำหรับทุก i จาก 1 ถึง n มีค่ามากที่สุดเท่าที่จะเป็นไปได้

ตัวอย่างเช่น หากอินพุตคือ

const arr = [1, 4, 3, 2];

ผลลัพธ์ควรเป็น

const output = 4;

คำอธิบายผลลัพธ์

n คือ 2 และผลรวมคู่สูงสุดคือ 4 = min(1, 2) + min(3, 4)

ตัวอย่างโค้ด

const arr = [1, 4, 3, 2];
const pairSum = (arr = []) => {
arr.sort((a, b) => a - b);
let sum = 0;
for (let i = 0; i < arr.length; i += 2) {
sum += Math.min(arr[i], arr[i + 1]);
}
return sum;
};
console.log(pairSum(arr));

ผลลัพธ์

4