-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy path744_寻找比目标字母大的最小字母.py
More file actions
40 lines (37 loc) · 1.15 KB
/
744_寻找比目标字母大的最小字母.py
File metadata and controls
40 lines (37 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding: utf-8 -*-
"""
Created on Sun Jun 21 11:42:48 2020
@author: leiya
"""
'''
0702
注意判断末尾的特殊情况
二分法应用的时候特别要注意特殊情况,因为很有可能最后可能的答案根本就不再搜索的范围内,可能在list边界之外
'''
class Solution:
def nextGreatestLetter(self, letters: List[str], target: str) -> str:
left = 0
right = len(letters) - 1
if letters[right] <= target:
return letters[0]
while left < right:
mid = (left+right) // 2
if letters[mid] <= target:
left = mid + 1
else:
right = mid
return letters[left]
class Solution:
def nextGreatestLetter(self, letters: List[str], target: str) -> str:
left = 0
right = len(letters) - 1
#注意此处有等号
if ord(target) >= ord(letters[right]):
return letters[0]
while left < right:
mid = (left+right) // 2
if ord(letters[mid]) <= ord(target):
left = mid + 1
else:
right = mid
return letters[left]