744.寻找比目标字母大的最小字母

2020-05-22
寻找比目标字母大的最小字母

给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另

给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。

在比较时,字母是依序循环出现的。举个例子:

题解:
思路1:暴力解找最小差值
var nextGreatestLetter = function (letters, target) {
  let str = ''; // 返回结果
  let diff = Number.MAX_SAFE_INTEGER; // 初始最大
  let tmp; 
  let targetCode = target.charCodeAt();
  for (let i = 0; i < letters.length; i++) {
    tmp = letters[i].charCodeAt(); // 遍历每一项 
    if (tmp > targetCode) { // 如果比目标大 算差值
      if (tmp - targetCode < diff) {
        diff = tmp - targetCode;
        str = letters[i];
      }
    } 
    else { // 如果比目标小 26 减去 差值
      if (26 - (targetCode - tmp) < diff) { // 找到最小的差值对应的字符
        diff = 26 - (targetCode - tmp);
        str = letters[i];
      }
    }
  }
  return str;
};

 

posted @ 2020-05-22 10:43  蓝小胖纸  阅读(233)  评论(0编辑  收藏  举报