在 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 次浏览

开启您的 职业

完成课程即可获得认证

立即开始
广告