From 9ee29662d9daac8b0776aa60c5756fb4b5d44fa9 Mon Sep 17 00:00:00 2001 From: Jeongwon Na Date: Sat, 18 Oct 2025 11:19:03 +0200 Subject: [PATCH 1/4] meeting rooms solution --- meeting-rooms/njngwn.java | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 meeting-rooms/njngwn.java diff --git a/meeting-rooms/njngwn.java b/meeting-rooms/njngwn.java new file mode 100644 index 000000000..4e0cc8480 --- /dev/null +++ b/meeting-rooms/njngwn.java @@ -0,0 +1,30 @@ +/** + * Definition of Interval: + * public class Interval { + * int start, end; + * Interval(int start, int end) { + * this.start = start; + * this.end = end; + * } + * } + */ + +public class Solution { + /** + * @param intervals: an array of meeting time intervals + * @return: if a person could attend all meetings + */ + public boolean canAttendMeetings(List intervals) { + // Write your code here + intervals.sort((a, b) -> a.start - b.start); // sort by start time + + int prevEndTime = 0; + for (Interval meeting : intervals) { + if (meeting.start < prevEndTime) { + return false; + } + prevEndTime = meeting.end; + } + return true; + } +} \ No newline at end of file From 42275afa889e8f3bbc0ad000119ba8ecca84bec9 Mon Sep 17 00:00:00 2001 From: Jeongwon Na Date: Sat, 18 Oct 2025 11:22:40 +0200 Subject: [PATCH 2/4] add line --- meeting-rooms/njngwn.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meeting-rooms/njngwn.java b/meeting-rooms/njngwn.java index 4e0cc8480..af5e7d040 100644 --- a/meeting-rooms/njngwn.java +++ b/meeting-rooms/njngwn.java @@ -27,4 +27,4 @@ public boolean canAttendMeetings(List intervals) { } return true; } -} \ No newline at end of file +} From a8fda8fbdfec20ebfbaaa0cb95b398826d768feb Mon Sep 17 00:00:00 2001 From: Jeongwon Na Date: Sat, 18 Oct 2025 11:48:07 +0200 Subject: [PATCH 3/4] lca solution --- .../njngwn.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 lowest-common-ancestor-of-a-binary-search-tree/njngwn.java diff --git a/lowest-common-ancestor-of-a-binary-search-tree/njngwn.java b/lowest-common-ancestor-of-a-binary-search-tree/njngwn.java new file mode 100644 index 000000000..bd679d020 --- /dev/null +++ b/lowest-common-ancestor-of-a-binary-search-tree/njngwn.java @@ -0,0 +1,23 @@ +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ + +class Solution { + public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { + if (root.val == p.val || root.val == q.val) return root; + + if (p.val < root.val && q.val < root.val) { + return lowestCommonAncestor(root.left, p, q); + } else if (p.val > root.val && q.val > root.val) { + return lowestCommonAncestor(root.right, p, q); + } else { + return root; + } + } +} From 699a5baecd19ab79aaa15cbf628d3f416a177f07 Mon Sep 17 00:00:00 2001 From: Jeongwon Na Date: Sat, 18 Oct 2025 12:15:07 +0200 Subject: [PATCH 4/4] kth-smallest-element-in-a-bst solution --- kth-smallest-element-in-a-bst/njngwn.java | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 kth-smallest-element-in-a-bst/njngwn.java diff --git a/kth-smallest-element-in-a-bst/njngwn.java b/kth-smallest-element-in-a-bst/njngwn.java new file mode 100644 index 000000000..2843909d3 --- /dev/null +++ b/kth-smallest-element-in-a-bst/njngwn.java @@ -0,0 +1,37 @@ +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode() {} + * TreeNode(int val) { this.val = val; } + * TreeNode(int val, TreeNode left, TreeNode right) { + * this.val = val; + * this.left = left; + * this.right = right; + * } + * } + */ +class Solution { + int cnt = 0; + int result = 0; + + public int kthSmallest(TreeNode root, int k) { + cnt = k; + traverseInOrder(root); + return result; + } + + public void traverseInOrder (TreeNode node) { + if (node == null) return; + + if (node.left != null) traverseInOrder(node.left); + cnt--; + if (cnt == 0) { + result = node.val; + return; + } + if (node.right != null) traverseInOrder(node.right); + } +}