From 0315a1ab554d9ba05a1703349dbbc8f49dbfa7aa Mon Sep 17 00:00:00 2001 From: sora0319 Date: Sat, 28 Jun 2025 23:06:49 +0900 Subject: [PATCH 1/6] solve metting rooms --- meeting-rooms/sora0319.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 meeting-rooms/sora0319.java diff --git a/meeting-rooms/sora0319.java b/meeting-rooms/sora0319.java new file mode 100644 index 000000000..822a453fd --- /dev/null +++ b/meeting-rooms/sora0319.java @@ -0,0 +1,14 @@ +import java.util.*; + +public class Solution { + public boolean canAttendMeetings(int[][] intervals) { + Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0])); + + for (int i = 0; i < intervals.length - 1; i++) { + if (intervals[i][1] > intervals[i + 1][0]) { + return false; + } + } + return true; + } +} From 1aa0cf703be1caa4924d6cb03daf622f90594712 Mon Sep 17 00:00:00 2001 From: sora0319 Date: Sat, 28 Jun 2025 23:07:11 +0900 Subject: [PATCH 2/6] solve lowest common ancestor of a binary search tree --- .../sora0319.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 lowest-common-ancestor-of-a-binary-search-tree/sora0319.java diff --git a/lowest-common-ancestor-of-a-binary-search-tree/sora0319.java b/lowest-common-ancestor-of-a-binary-search-tree/sora0319.java new file mode 100644 index 000000000..b34d76548 --- /dev/null +++ b/lowest-common-ancestor-of-a-binary-search-tree/sora0319.java @@ -0,0 +1,15 @@ +public class Solution { + public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { + TreeNode node = root; + while (node != null) { + if (p.val < node.val && q.val < node.val) { + node = node.left; + } else if (node.val < p.val && node.val < q.val) { + node = node.right; + } else { + return node; + } + } + return null; + } +} \ No newline at end of file From 6b4cf59a2a360f8371bee8062a0bf5339b1339e1 Mon Sep 17 00:00:00 2001 From: sora0319 Date: Sat, 28 Jun 2025 23:07:26 +0900 Subject: [PATCH 3/6] solve kth smallest element in a bst --- kth-smallest-element-in-a-bst/sora0319.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 kth-smallest-element-in-a-bst/sora0319.java diff --git a/kth-smallest-element-in-a-bst/sora0319.java b/kth-smallest-element-in-a-bst/sora0319.java new file mode 100644 index 000000000..4ada1d70b --- /dev/null +++ b/kth-smallest-element-in-a-bst/sora0319.java @@ -0,0 +1,20 @@ +public class Solution { + private int count = 0; + private int answer = -1; + + public int kthSmallest(TreeNode root, int k) { + ordering(root, k); + return answer; + } + + private void ordering(TreeNode node, int k) { + if (node == null) return; + ordering(node.left, k); + count++; + if (count == k) { + answer = node.val; + return; + } + ordering(node.right, k); + } +} \ No newline at end of file From 1426c173161a3bc6f26ad7704b99b667029ddb4c Mon Sep 17 00:00:00 2001 From: sora0319 Date: Sat, 28 Jun 2025 23:07:40 +0900 Subject: [PATCH 4/6] solve insert interval --- insert-interval/sora0319.java | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 insert-interval/sora0319.java diff --git a/insert-interval/sora0319.java b/insert-interval/sora0319.java new file mode 100644 index 000000000..22eadd535 --- /dev/null +++ b/insert-interval/sora0319.java @@ -0,0 +1,31 @@ +public class Solution { + public int[][] insert(int[][] intervals, int[] newInterval) { + List list = new ArrayList<>(); + + int order = 0; + while (order < intervals.length && intervals[order][0] < newInterval[0]) { + list.add(intervals[order]); + order++; + } + list.add(newInterval); + while (order < intervals.length) { + list.add(intervals[order]); + order++; + } + + List output = new ArrayList<>(); + output.add(list.get(0)); + + for (int i = 1; i < list.size(); i++) { + int[] last = output.get(output.size() - 1); + int[] current = list.get(i); + if (last[1] < current[0]) { + output.add(current); + } else { + last[1] = Math.max(last[1], current[1]); + } + } + + return output.toArray(new int[output.size()][]); + } +} \ No newline at end of file From a9289c9f51c5de88fd79629a926017f3c733dd50 Mon Sep 17 00:00:00 2001 From: sora0319 Date: Sat, 28 Jun 2025 23:09:34 +0900 Subject: [PATCH 5/6] solve find median from data stream --- find-median-from-data-stream/sora0319.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 find-median-from-data-stream/sora0319.java diff --git a/find-median-from-data-stream/sora0319.java b/find-median-from-data-stream/sora0319.java new file mode 100644 index 000000000..cd3592ed8 --- /dev/null +++ b/find-median-from-data-stream/sora0319.java @@ -0,0 +1,26 @@ +public class MedianFinder { + private PriorityQueue maxHeap; + private PriorityQueue minHeap; + + public MedianFinder() { + maxHeap = new PriorityQueue<>(Collections.reverseOrder()); + minHeap = new PriorityQueue<>(); + } + + public void addNum(int num) { + maxHeap.offer(num); + minHeap.offer(maxHeap.poll()); + + if (minHeap.size() > maxHeap.size()) { + maxHeap.offer(minHeap.poll()); + } + } + + public double findMedian() { + if (maxHeap.size() > minHeap.size()) { + return maxHeap.peek(); + } else { + return (maxHeap.peek() + minHeap.peek()) / 2.0; + } + } +} \ No newline at end of file From 1511cd0893c133a6f0ce169ecdfb8d92fe8a0a12 Mon Sep 17 00:00:00 2001 From: sora0319 Date: Sat, 28 Jun 2025 23:14:39 +0900 Subject: [PATCH 6/6] add inline --- find-median-from-data-stream/sora0319.java | 3 ++- insert-interval/sora0319.java | 3 ++- kth-smallest-element-in-a-bst/sora0319.java | 3 ++- lowest-common-ancestor-of-a-binary-search-tree/sora0319.java | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/find-median-from-data-stream/sora0319.java b/find-median-from-data-stream/sora0319.java index cd3592ed8..6046626c9 100644 --- a/find-median-from-data-stream/sora0319.java +++ b/find-median-from-data-stream/sora0319.java @@ -23,4 +23,5 @@ public double findMedian() { return (maxHeap.peek() + minHeap.peek()) / 2.0; } } -} \ No newline at end of file +} + diff --git a/insert-interval/sora0319.java b/insert-interval/sora0319.java index 22eadd535..77cf2411b 100644 --- a/insert-interval/sora0319.java +++ b/insert-interval/sora0319.java @@ -28,4 +28,5 @@ public int[][] insert(int[][] intervals, int[] newInterval) { return output.toArray(new int[output.size()][]); } -} \ No newline at end of file +} + diff --git a/kth-smallest-element-in-a-bst/sora0319.java b/kth-smallest-element-in-a-bst/sora0319.java index 4ada1d70b..88c49db81 100644 --- a/kth-smallest-element-in-a-bst/sora0319.java +++ b/kth-smallest-element-in-a-bst/sora0319.java @@ -17,4 +17,5 @@ private void ordering(TreeNode node, int k) { } ordering(node.right, k); } -} \ No newline at end of file +} + diff --git a/lowest-common-ancestor-of-a-binary-search-tree/sora0319.java b/lowest-common-ancestor-of-a-binary-search-tree/sora0319.java index b34d76548..e8c72b75a 100644 --- a/lowest-common-ancestor-of-a-binary-search-tree/sora0319.java +++ b/lowest-common-ancestor-of-a-binary-search-tree/sora0319.java @@ -12,4 +12,5 @@ public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { } return null; } -} \ No newline at end of file +} +