Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đạt tổng cặp tối đa trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một mảng số nguyên arr có độ dài 2n làm đối số duy nhất. Nhiệm vụ của hàm là gom các số nguyên này thành n cặp số nguyên, ví dụ (a1, b1), (a2, b2), ..., (an, bn) sao cho tổng của min(ai, bi) với mọi i từ 1 đến n là lớn nhất có thể.

Ví dụ, nếu đầu vào là:

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

Thì đầu ra sẽ là:

const output = 4;

Giải thích kết quả

n = 2, và tổng cặp tối đa là 4 = min(1, 2) + min(3, 4).

Ví dụ

Dưới đây là mã thực hiện:

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));

Kết quả

Đầu ra trên console:

4