JavaScript 中小於 n 的兩個元素的和\n


我們要求編寫一個 JavaScript 函式,該函式接受一個數字陣列 arr 作為第一個引數和一個數字 num 作為第二個引數。

然後,該函式應該找到陣列中兩個數字的和最大且恰好小於數字 num。如果不存在和小於 num 的兩個這樣的數字,則我們的函式應返回 -1。

例如 −

如果輸入陣列和數字為 −

const arr = [34, 75, 33, 23, 1, 24, 54, 8];
const num = 60;

則輸出應為 −

const output = 58;

因為 34 + 24 是小於 60 的最大和

示例

該程式碼如下 −

 即時演示

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;
   let i = 0;
   let 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));

輸出

控制檯中的輸出將為 −

58

更新於:27-Feb-2021

123 瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告