1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// @Title: 寻找比目标字母大的最小字母 (Find Smallest Letter Greater Than Target)
// @Author: 15816537946@163.com
// @Date: 2020-06-25 07:15:36
// @Runtime: 0 ms
// @Memory: 2.9 MB
func nextGreatestLetter(letters []byte, target byte) byte {
	lo, hi := 0, len(letters)-1
	for lo <= hi {
		mid := lo+(hi-lo)/2
		if letters[mid] <= target {
			lo = mid+1
		} else {
			hi = mid-1
		}
	}
	
	if lo >= len(letters) {
		return letters[0]
	}
	return letters[lo]
}