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

Tìm tổng 2 phần tử lớn nhất nhưng nhỏ hơn n trong JavaScript

Viết hàm tìm 2 số trong mảng có tổng lớn nhất nhưng vẫn nhỏ hơn num. Trả về -1 nếu không có cặp nào.

Ví dụ: arr=[34,75,33,23,1,24,54,8], num=60 → 58 (34+24).

Ví dụ

const arr = [34, 75, 33, 23, 1, 24, 54, 8];
const num = 60;
const lessSum = (arr = [], num = 1) => {
  arr.sort((a, b) => a - b);
  let max = -1, i = 0, j = arr.length - 1;
  while (i < j) {
    let sum = arr[i] + arr[j];
    if (sum < num) { max = Math.max(max, sum); i++; }
    else j--;
  }
  return max;
};
console.log(lessSum(arr, num));

Kết quả

58