File tree 3 files changed +80
-0
lines changed
find-minimum-in-rotated-sorted-array 3 files changed +80
-0
lines changed Original file line number Diff line number Diff line change
1
+ // 시간복잡도: O(log n)
2
+ // 공간복잡도: O(1)
3
+
4
+ /**
5
+ * @param {number[] } nums
6
+ * @return {number }
7
+ */
8
+ var findMin = function ( nums ) {
9
+ let leftIdx = 0 ;
10
+ let rightIdx = nums . length - 1 ;
11
+
12
+ if ( nums . length === 1 ) return nums [ 0 ]
13
+
14
+ while ( leftIdx <= rightIdx ) {
15
+ if ( nums [ leftIdx ] < nums [ rightIdx ] ) return nums [ leftIdx ]
16
+
17
+ let midIdx = Math . floor ( ( leftIdx + rightIdx ) / 2 ) ;
18
+
19
+ if ( nums [ midIdx ] > nums [ midIdx + 1 ] ) {
20
+ return nums [ midIdx + 1 ]
21
+ }
22
+
23
+ if ( nums [ leftIdx ] < nums [ midIdx ] && nums [ leftIdx ] > nums [ rightIdx ] ) {
24
+ leftIdx = midIdx
25
+ } else {
26
+ rightIdx = midIdx
27
+ }
28
+ }
29
+
30
+ return nums [ 0 ]
31
+ } ;
32
+
Original file line number Diff line number Diff line change
1
+ // 시간복잡도: O(n)
2
+ // 공간복잡도: O(1)
3
+
4
+ /**
5
+ * Definition for singly-linked list.
6
+ * function ListNode(val) {
7
+ * this.val = val;
8
+ * this.next = null;
9
+ * }
10
+ */
11
+
12
+ /**
13
+ * @param {ListNode } head
14
+ * @return {boolean }
15
+ */
16
+ var hasCycle = function ( head ) {
17
+ let fastPointer = head ;
18
+ let slowPointer = head ;
19
+
20
+ while ( fastPointer && fastPointer . next ) {
21
+ slowPointer = slowPointer . next ;
22
+ fastPointer = fastPointer . next . next
23
+
24
+ if ( fastPointer === slowPointer ) return true
25
+
26
+ }
27
+
28
+ return false
29
+ } ;
Original file line number Diff line number Diff line change
1
+ // 시간복잡도: O(n)
2
+ // 공간복잡도: O(1)
3
+
4
+ /**
5
+ * @param {number[] } nums
6
+ * @return {number }
7
+ */
8
+ var maxSubArray = function ( nums ) {
9
+ let maxNum = - Infinity ;
10
+ let prevSum = - Infinity ;
11
+
12
+ for ( let i = 0 ; i < nums . length ; i ++ ) {
13
+ prevSum = Math . max ( prevSum + nums [ i ] , nums [ i ] )
14
+ maxNum = Math . max ( prevSum , maxNum )
15
+ }
16
+
17
+
18
+ return maxNum
19
+ } ;
You can’t perform that action at this time.
0 commit comments