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; };