From 22ff96cc5d05dedb941e80d480f1a9564d5ee555 Mon Sep 17 00:00:00 2001 From: jla670 Date: Tue, 24 Mar 2026 00:45:54 -0700 Subject: [PATCH 1/4] merge two sorted lists solution --- merge-two-sorted-lists/jylee2033.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 merge-two-sorted-lists/jylee2033.py diff --git a/merge-two-sorted-lists/jylee2033.py b/merge-two-sorted-lists/jylee2033.py new file mode 100644 index 0000000000..8723e36486 --- /dev/null +++ b/merge-two-sorted-lists/jylee2033.py @@ -0,0 +1,27 @@ +# Definition for singly-linked list. +# class ListNode: +# def __init__(self, val=0, next=None): +# self.val = val +# self.next = next +class Solution: + def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: + # Use a while loop to compare values and build the merged list + + # Create a new list + output = ListNode() + cur = output + + while list1 and list2: + if list1.val < list2.val: + cur.next = list1 + list1 = list1.next + else: + cur.next = list2 + list2 = list2.next + + cur = cur.next + + # Attach the remaining nodes + cur.next = list1 or list2 + + return output.next From 425459bd4957c63828744ce3c10bf5a166fa9161 Mon Sep 17 00:00:00 2001 From: jla670 Date: Tue, 24 Mar 2026 00:53:08 -0700 Subject: [PATCH 2/4] add complexity --- merge-two-sorted-lists/jylee2033.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/merge-two-sorted-lists/jylee2033.py b/merge-two-sorted-lists/jylee2033.py index 8723e36486..439dd983e0 100644 --- a/merge-two-sorted-lists/jylee2033.py +++ b/merge-two-sorted-lists/jylee2033.py @@ -25,3 +25,6 @@ def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> cur.next = list1 or list2 return output.next + +# Time Complexity : O(n + m), n - lenght of list1, m - length of list2 +# Space Complexity : O(1) From af39f1ff4a4f43358b94434119e6832a80382a5c Mon Sep 17 00:00:00 2001 From: jla670 Date: Wed, 25 Mar 2026 22:34:36 -0700 Subject: [PATCH 3/4] maximum depth of binary tree solution --- maximum-depth-of-binary-tree/jylee2033.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 maximum-depth-of-binary-tree/jylee2033.py diff --git a/maximum-depth-of-binary-tree/jylee2033.py b/maximum-depth-of-binary-tree/jylee2033.py new file mode 100644 index 0000000000..575d96dd19 --- /dev/null +++ b/maximum-depth-of-binary-tree/jylee2033.py @@ -0,0 +1,20 @@ +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right +class Solution: + def maxDepth(self, root: Optional[TreeNode]) -> int: + # Recursive approach + + if not root: + return 0 + + left_depth = self.maxDepth(root.left) + right_depth = self.maxDepth(root.right) + + return max(left_depth, right_depth) + 1 + +# Time Complexity: O(n) +# Space Complexity: O(n) From 2267c00a766b4750835fd506a52cf55fc767b78e Mon Sep 17 00:00:00 2001 From: jla670 Date: Fri, 27 Mar 2026 17:55:48 -0700 Subject: [PATCH 4/4] find minimum in rotated sorted array solution --- .../jylee2033.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 find-minimum-in-rotated-sorted-array/jylee2033.py diff --git a/find-minimum-in-rotated-sorted-array/jylee2033.py b/find-minimum-in-rotated-sorted-array/jylee2033.py new file mode 100644 index 0000000000..3e5821afbe --- /dev/null +++ b/find-minimum-in-rotated-sorted-array/jylee2033.py @@ -0,0 +1,21 @@ +class Solution: + def findMin(self, nums: List[int]) -> int: + # Binary Search: compare mid with right + # nums[mid] > nums[right] -> min is in right half + # nums[mid] < nums[right] -> min is in left half (including mid) + + left = 0 + right = len(nums) - 1 + + while left < right: + mid = (left + right) // 2 + + if nums[mid] > nums[right]: + left = mid + 1 + elif nums[mid] < nums[right]: + right = mid + + return nums[left] + +# Time Complexity: O(log n) +# Space Complexity: O(1)