Skip to content

Commit 4234f4f

Browse files
authored
Merge pull request #1947 from njngwn/main
[njngwn] Week 13 Solutions
2 parents 17425f2 + 699a5ba commit 4234f4f

File tree

3 files changed

+90
-0
lines changed

3 files changed

+90
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode() {}
8+
* TreeNode(int val) { this.val = val; }
9+
* TreeNode(int val, TreeNode left, TreeNode right) {
10+
* this.val = val;
11+
* this.left = left;
12+
* this.right = right;
13+
* }
14+
* }
15+
*/
16+
class Solution {
17+
int cnt = 0;
18+
int result = 0;
19+
20+
public int kthSmallest(TreeNode root, int k) {
21+
cnt = k;
22+
traverseInOrder(root);
23+
return result;
24+
}
25+
26+
public void traverseInOrder (TreeNode node) {
27+
if (node == null) return;
28+
29+
if (node.left != null) traverseInOrder(node.left);
30+
cnt--;
31+
if (cnt == 0) {
32+
result = node.val;
33+
return;
34+
}
35+
if (node.right != null) traverseInOrder(node.right);
36+
}
37+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
11+
class Solution {
12+
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
13+
if (root.val == p.val || root.val == q.val) return root;
14+
15+
if (p.val < root.val && q.val < root.val) {
16+
return lowestCommonAncestor(root.left, p, q);
17+
} else if (p.val > root.val && q.val > root.val) {
18+
return lowestCommonAncestor(root.right, p, q);
19+
} else {
20+
return root;
21+
}
22+
}
23+
}

meeting-rooms/njngwn.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* Definition of Interval:
3+
* public class Interval {
4+
* int start, end;
5+
* Interval(int start, int end) {
6+
* this.start = start;
7+
* this.end = end;
8+
* }
9+
* }
10+
*/
11+
12+
public class Solution {
13+
/**
14+
* @param intervals: an array of meeting time intervals
15+
* @return: if a person could attend all meetings
16+
*/
17+
public boolean canAttendMeetings(List<Interval> intervals) {
18+
// Write your code here
19+
intervals.sort((a, b) -> a.start - b.start); // sort by start time
20+
21+
int prevEndTime = 0;
22+
for (Interval meeting : intervals) {
23+
if (meeting.start < prevEndTime) {
24+
return false;
25+
}
26+
prevEndTime = meeting.end;
27+
}
28+
return true;
29+
}
30+
}

0 commit comments

Comments
 (0)