File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed
Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change 136136| 150 | [ Evaluate Reverse Polish Notation] ( https://leetcode.com/problems/evaluate-reverse-polish-notation ) | [ ![ Java] ( assets/java.png )] ( src/EvaluateReversePolishNotation.java ) | |
137137| 151 | [ Reverse Words in a String] ( https://leetcode.com/problems/reverse-words-in-a-string ) | [ ![ Java] ( assets/java.png )] ( src/ReverseWordsInAString.java ) | |
138138| 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 ) | |
140140| 155 | [ Min Stack] ( https://leetcode.com/problems/min-stack ) | [ ![ Java] ( assets/java.png )] ( src/MinStack.java ) [ ![ Python] ( assets/python.png )] ( python/min_stack.py ) | |
141141| 156 | 🔒 [ Binary Tree Upside Down] ( https://leetcode.com/problems/binary-tree-upside-down ) | | |
142142| 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