File tree 2 files changed +24
-1
lines changed
2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change 136
136
| 150 | [ Evaluate Reverse Polish Notation] ( https://leetcode.com/problems/evaluate-reverse-polish-notation ) | [ ![ Java] ( assets/java.png )] ( src/EvaluateReversePolishNotation.java ) | |
137
137
| 151 | [ Reverse Words in a String] ( https://leetcode.com/problems/reverse-words-in-a-string ) | [ ![ Java] ( assets/java.png )] ( src/ReverseWordsInAString.java ) | |
138
138
| 152 | [ Maximum Product Subarray] ( https://leetcode.com/problems/maximum-product-subarray ) | [ ![ Java] ( assets/java.png )] ( src/MaximumProductSubarray.java ) | |
139
- | 153 | [ Find Minimum in Rotated Sorted Array] ( https://leetcode.com/problems/find-minimum-in-rotated-sorted-array ) | | |
139
+ | 153 | [ Find Minimum in Rotated Sorted Array] ( https://leetcode.com/problems/find-minimum-in-rotated-sorted-array ) | [ ![ Java ] ( assets/java.png )] ( src/FindMinimumInRotatedSortedArray.java ) | |
140
140
| 155 | [ Min Stack] ( https://leetcode.com/problems/min-stack ) | [ ![ Java] ( assets/java.png )] ( src/MinStack.java ) [ ![ Python] ( assets/python.png )] ( python/min_stack.py ) | |
141
141
| 156 | 🔒 [ Binary Tree Upside Down] ( https://leetcode.com/problems/binary-tree-upside-down ) | | |
142
142
| 157 | [ Read N Characters Given Read4] ( https://leetcode.com/problems/read-n-characters-given-read4 ) | | |
Original file line number Diff line number Diff line change
1
+ // https://leetcode.com/problems/find-minimum-in-rotated-sorted-array
2
+ // T: O(log(N))
3
+ // T: O(1)
4
+
5
+ public class FindMinimumInRotatedSortedArray {
6
+ public int findMin (int [] array ) {
7
+ if (!isRotated (array )) return array [0 ];
8
+
9
+ for (int left = 0 , right = array .length - 1 ; left <= right ; ) {
10
+ int middle = left + (right - left ) / 2 ;
11
+ if (array [middle ] > array [middle + 1 ]) return array [middle + 1 ];
12
+ if (array [middle ] < array [middle - 1 ]) return array [middle ];
13
+
14
+ if (array [middle ] < array [array .length - 1 ]) right = middle - 1 ;
15
+ else left = middle + 1 ;
16
+ }
17
+ return -1 ;
18
+ }
19
+
20
+ private boolean isRotated (int [] array ) {
21
+ return array [0 ] > array [array .length - 1 ];
22
+ }
23
+ }
You can’t perform that action at this time.
0 commit comments