File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * TC: O(log N)
3
+ * 이진탐색으로 log N으로 계산
4
+ *
5
+ * SC: O(1)
6
+ */
7
+
8
+ /**
9
+ * @param {number[] } nums
10
+ * @return {number }
11
+ */
12
+ var findMin = function ( nums ) {
13
+ let left = 0 ;
14
+ let right = nums . length - 1 ;
15
+
16
+ // case1: v_left <= v_center < v_right => return left
17
+ // case2: v_right < v_left <= v_center => left = center
18
+ // case3: v_center < v_right < v_left => right = center
19
+
20
+ while ( left < right ) {
21
+ const center = Math . floor ( ( left + right ) / 2 ) ;
22
+
23
+ if ( nums [ left ] <= nums [ center ] && nums [ center ] < nums [ right ] ) {
24
+ return nums [ left ] ;
25
+ }
26
+ if ( nums [ right ] < nums [ left ] && nums [ left ] <= nums [ center ] ) {
27
+ left = center + 1 ;
28
+ continue ;
29
+ }
30
+ if ( nums [ center ] < nums [ right ] && nums [ right ] < nums [ left ] ) {
31
+ right = center ;
32
+ continue ;
33
+ }
34
+ }
35
+
36
+ return nums [ left ] ;
37
+ } ;
You can’t perform that action at this time.
0 commit comments