题目大意
给定一个有序的字符数组 letters 和一个字符 target,要求找出 letters 中大于 target 的最小字符。letters 字符数组是循环数组。
解题思路
二分查找变种:
应该注意最后返回的是 l 位置的字符。
代码
class Solution(object):
def nextGreatestLetter(self, letters, target):
""" :type letters: List[str] :type target: str :rtype: str """
l = 0
r = len(letters) - 1
while l <= r:
m = l + (r - l) / 2
if letters[m] <= target:
l = m + 1
else:
r = m - 1
if l < len(letters):
return letters[l]
else:
return letters[0]