在 JavaScript 中找出大於目標值的最小字母


假設我們有一個僅包含小寫字母的已排序字元陣列 letters。並且給定一個目標字母 target。

我們需要編寫一個 JavaScript 函式,該函式將陣列作為第一個引數,並將字母作為第二個引數。該函式應該找到列表中大於給定目標的最小元素。

我們必須記住,字母也會環繞回來。例如,如果 target 是 target = 'z' 且 letters = ['a', 'b'],則答案為 'a'。

例如 -

如果輸入陣列和字母是 -

const arr = ["c", "f", "j"];
const target = "a";

那麼輸出應該是 -

const output: "c";

示例

程式碼為 -

 即時演示

const arr = ["c", "f", "j"];
const target = "a";
const findNearestLetter = (arr = [], target = '') => {
   let left = 0;
   let right = arr.length - 1;
   while (left <= right) {
      let mid = left + (right - left) / 2;
      if (arr[mid] <= target) {
         left ++;
      } else {
         right --;
      };
   };
   if (left == arr.length) {
      return arr[0];
   };
   return arr[left];
};
console.log(findNearestLetter(arr, target));

輸出

控制檯中的輸出將為 -

c

更新於:2021 年 2 月 27 日

334 次瀏覽

開啟您的 職業

完成課程即可獲得認證

立即開始
廣告
© . All rights reserved.