Skip to content

Commit c8de006

Browse files
committed
problem: 0744 find smallest letter greater than target
1 parent 1a953a0 commit c8de006

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# 0744. Find Smallest Letter Greater Than Target
2+
3+
* Difficulty: easy
4+
* Link: https://leetcode.com/problems/find-smallest-letter-greater-than-target/
5+
* Topics: Binary-Search
6+
7+
# Clarification
8+
9+
1. Check the inputs and outputs
10+
- INPUT:
11+
- List[char]
12+
- char
13+
- OUTPUT:char
14+
15+
# Solution
16+
17+
### Thought Process
18+
19+
- binary search
20+
- 一開始直接先判斷超出的部分
21+
- 兩個 pointer
22+
- left: 指向陣列中最左邊的 char
23+
- right: 指向陣列中最右邊的 char
24+
- 每次比較 mid = (left+right)/2 index 的 char 與 target
25+
- 若 mid > target → right = mid -1
26+
- 若 mid ≤ target → left = mid + 1
27+
- Implement
28+
29+
```python
30+
class Solution:
31+
def nextGreatestLetter(self, letters: List[str], target: str) -> str:
32+
# if the number is out of bound
33+
if target >= letters[-1] or target < letters[0]:
34+
return letters[0]
35+
36+
# binary search
37+
left = 0
38+
right = len(letters)-1
39+
while left <= right:
40+
mid = (left+right)//2
41+
if target >= letters[mid]:
42+
left = mid+1
43+
if target < letters[mid]:
44+
right = mid-1
45+
46+
return letters[left]
47+
```
48+
49+
50+
### Complexity
51+
52+
- Time complexity: log(n)
53+
- Space complexity: log(1)
54+
55+
# Note
56+
57+
- ****[Python easy solution with detail explanation (modified binary search)](https://leetcode.com/problems/find-smallest-letter-greater-than-target/discuss/1568523/Python-easy-solution-with-detail-explanation-(modified-binary-search))****

0 commit comments

Comments
 (0)