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