Skip to content

Commit 66cd1dd

Browse files
authoredOct 17, 2024
Merge pull request #528 from JEONGHWANMIN/main
[환미니니] Week9 Solutions
2 parents d7bea6c + a5b768d commit 66cd1dd

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed
 
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+

‎linked-list-cycle/hwanmini.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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+
};

‎maximum-subarray/hwanmini.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
};

0 commit comments

Comments
 (0)
Please sign in to comment.