From cd9e4f4d1a9c62f45854f35aa1cc13905c51030a Mon Sep 17 00:00:00 2001 From: JEONGHWANMIN Date: Sat, 12 Oct 2024 17:44:51 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C=ED=92=80?= =?UTF-8?q?=EC=9D=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linked-list-cycle/hwanmini.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 linked-list-cycle/hwanmini.js diff --git a/linked-list-cycle/hwanmini.js b/linked-list-cycle/hwanmini.js new file mode 100644 index 000000000..6cc49071e --- /dev/null +++ b/linked-list-cycle/hwanmini.js @@ -0,0 +1,29 @@ +// 시간복잡도: O(n) +// 공간복잡도: O(1) + +/** + * Definition for singly-linked list. + * function ListNode(val) { + * this.val = val; + * this.next = null; + * } + */ + +/** + * @param {ListNode} head + * @return {boolean} + */ +var hasCycle = function(head) { + let fastPointer = head; + let slowPointer = head; + + while (fastPointer && fastPointer.next) { + slowPointer = slowPointer.next; + fastPointer = fastPointer.next.next + + if (fastPointer === slowPointer) return true + + } + + return false +}; From bdbc178aa81f2c74fd6e3bc51edbc15356438b9f Mon Sep 17 00:00:00 2001 From: JEONGHWANMIN Date: Sun, 13 Oct 2024 01:00:34 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C=ED=92=80?= =?UTF-8?q?=EC=9D=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hwanmini.js | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 find-minimum-in-rotated-sorted-array/hwanmini.js diff --git a/find-minimum-in-rotated-sorted-array/hwanmini.js b/find-minimum-in-rotated-sorted-array/hwanmini.js new file mode 100644 index 000000000..c36f3dad2 --- /dev/null +++ b/find-minimum-in-rotated-sorted-array/hwanmini.js @@ -0,0 +1,32 @@ +// 시간복잡도: O(log n) +// 공간복잡도: O(1) + +/** + * @param {number[]} nums + * @return {number} + */ +var findMin = function(nums) { + let leftIdx = 0; + let rightIdx = nums.length - 1; + + if (nums.length === 1) return nums[0] + + while (leftIdx <= rightIdx) { + if (nums[leftIdx] < nums[rightIdx]) return nums[leftIdx] + + let midIdx = Math.floor((leftIdx + rightIdx) / 2); + + if (nums[midIdx] > nums[midIdx+1]) { + return nums[midIdx+1] + } + + if (nums[leftIdx] < nums[midIdx] && nums[leftIdx] > nums[rightIdx]) { + leftIdx = midIdx + } else { + rightIdx = midIdx + } + } + + return nums[0] +}; + From a5b768d7cd88070f97473a586f4daab7c16ec030 Mon Sep 17 00:00:00 2001 From: JEONGHWANMIN Date: Sun, 13 Oct 2024 02:22:15 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C=ED=92=80?= =?UTF-8?q?=EC=9D=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maximum-subarray/hwanmini.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 maximum-subarray/hwanmini.js diff --git a/maximum-subarray/hwanmini.js b/maximum-subarray/hwanmini.js new file mode 100644 index 000000000..4da2e8688 --- /dev/null +++ b/maximum-subarray/hwanmini.js @@ -0,0 +1,19 @@ +// 시간복잡도: O(n) +// 공간복잡도: O(1) + +/** + * @param {number[]} nums + * @return {number} + */ +var maxSubArray = function (nums) { + let maxNum = -Infinity; + let prevSum = -Infinity; + + for (let i = 0 ; i < nums.length; i++) { + prevSum = Math.max(prevSum + nums[i], nums[i]) + maxNum = Math.max(prevSum, maxNum) + } + + + return maxNum +};