File tree Expand file tree Collapse file tree 3 files changed +73
-0
lines changed
find-minimum-in-rotated-sorted-array
longest-repeating-character-replacement
search-in-rotated-sorted-array Expand file tree Collapse file tree 3 files changed +73
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def findMin (self , nums : List [int ]) -> int :
3
+
4
+ l = 0
5
+ r = len (nums ) - 1
6
+
7
+ while l <= r :
8
+ mid = (l + r ) // 2
9
+ if nums [mid ] < nums [r ]:
10
+ r = mid
11
+ else :
12
+ l = mid + 1
13
+
14
+ return nums [r ]
15
+
16
+ # TC: O(logn), SC: O(1)
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def characterReplacement (self , s : str , k : int ) -> int :
3
+ l = 0
4
+ c_frequency = {}
5
+ longest_str_len = 0
6
+
7
+ for r in range (len (s )):
8
+ if not s [r ] in c_frequency :
9
+ c_frequency [s [r ]] = 0
10
+ c_frequency [s [r ]] += 1
11
+
12
+ cells_count = r - l + 1
13
+ if cells_count - max (c_frequency .values ()) <= k :
14
+ longest_str_len = max (longest_str_len , cells_count )
15
+
16
+ else :
17
+ c_frequency [s [l ]] -= 1
18
+ if not c_frequency [s [l ]]:
19
+ c_frequency .pop (s [l ])
20
+ l += 1
21
+
22
+ return longest_str_len
23
+
24
+ ## TC: O(n), SC: O(1)
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def search (self , nums : List [int ], target : int ) -> int :
3
+ left , right = 0 , len (nums ) - 1
4
+
5
+ while left <= right :
6
+ mid = (left + right ) // 2
7
+
8
+ if nums [mid ] == target :
9
+ return mid
10
+
11
+ if nums [left ] <= nums [mid ]:
12
+ if nums [left ] <= target < nums [mid ]:
13
+ right = mid - 1
14
+ else :
15
+ left = mid + 1
16
+
17
+ else :
18
+ if nums [mid ] < target <= nums [right ]:
19
+ left = mid + 1
20
+ else :
21
+ right = mid - 1
22
+
23
+ return - 1
24
+
25
+ ## TC: O(n), SC: O(1)
26
+
27
+ # if target in nums:
28
+ # return nums.index(target)
29
+ # else:
30
+ # return -1
31
+
32
+ ## TC: O(n), this may fater than bintree way if gvien nums are longer
33
+ ## SC: O(n)
You can’t perform that action at this time.
0 commit comments