leetcode 744. 寻找比目标字母大的最小字母
给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。
在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’。
示例1:
输入:
letters = [“c”, “f”, “j”]
target = “a”
输出: “c”
示例2:
输入:
letters = [“c”, “f”, “j”]
target = “c”
输出: “f”
示例3:
输入:
letters = [“c”, “f”, “j”]
target = “d”
输出: “f”
示例4:
输入:
letters = [“c”, “f”, “j”]
target = “g”
输出: “j”
示例5:
输入:
letters = [“c”, “f”, “j”]
target = “j”
输出: “c”
示例6:
输入:
letters = [“c”, “f”, “j”]
target = “k”
输出: “c”
提示:
- letters长度范围在[2, 10000]区间内。
- letters 仅由小写字母组成,最少包含两个不同的字母。
- 目标字母target 是一个小写字母。
方法:二分查找
思路:通过二分查找找到target的最小区间(最小区间最多包含两个数),右半区间数即为所求,右半区间数越界,则取字符数组中第一个字符为结果。
运行数据:执行用时:0 ms,内存消耗:39.9 MB
1 | // LeetCode指定调用方法 |
学习所得,资料、图片部分来源于网络,如有侵权,请联系本人删除。
才疏学浅,若有错误或不当之处,可批评指正,还请见谅!