0
点赞
收藏
分享

微信扫一扫

寻找比目标字母大的最小字母(2022-4-3)每日一练

744. 寻找比目标字母大的最小字母(2022-4-3)

给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。

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

如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’

示例 1:

示例 2:

示例 3:

提示:

  • 2 <= letters.length <= 104
  • letters[i] 是一个小写字母
  • letters 按非递减顺序排序
  • letters 最少包含两个不同的字母
  • target 是一个小写字母

解题思路

简单题我重拳出击!👊!

两个思路:模拟、二分查找。当然是模拟看起来简单,不过顺手练一下二分。

// 模拟
var nextGreatestLetter = function(letters, target) {
    for(let l of letters){
        if(target < l) return l
    }
    return letters[0]
}

// 二分
var nextGreatestLetter = function(letters, target) {
	let l = 0,r = letters.length-1
    if(letters[r] <= target) return letters[0]
    while(l < r){
        let mid = l+r >> 1
        if(letters[mid] > target){
            r = mid
        }else{
            l = mid + 1
        }
    }
    return letters[l]
}
举报

相关推荐

0 条评论