Skip to content

Commit da00806

Browse files
Merge pull request algorithm001#565 from zsndev/master
week3-129
2 parents 0c88457 + edd7b20 commit da00806

4 files changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import java.util.PriorityQueue;
2+
3+
public class LeetCode_104_129 {
4+
public int maxDepth(TreeNode root) {
5+
return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
6+
}
7+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
import java.util.PriorityQueue;
4+
5+
public class LeetCode_373_129 {
6+
public List<int[]> kSmallestPairs(int[] nums1, int[] nums2, int k) {
7+
PriorityQueue<int[]> queue = new PriorityQueue<>((a, b) -> b[0] + b[1] - a[0] - a[1]);
8+
List<int[]> res = new ArrayList<>();
9+
if (nums1.length == 0 || nums2.length == 0 || k == 0) return res;
10+
for (int i = 0; i < Math.min(nums1.length, k); i++) {
11+
for (int j = 0; j < Math.min(nums2.length, k); j++) {
12+
int[] cur = new int[]{nums1[i], nums2[j]};
13+
if (queue.size() < k) {
14+
queue.add(cur);
15+
} else if (queue.peek()[0] + queue.peek()[1] > cur[0] + cur[1]) {
16+
queue.poll();
17+
queue.add(cur);
18+
}
19+
}
20+
}
21+
22+
while (!queue.isEmpty()) {
23+
res.add(queue.poll());
24+
}
25+
return res;
26+
}
27+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import java.util.PriorityQueue;
2+
3+
public class LeetCode_703_129 {
4+
private PriorityQueue<Integer> minHeap = new PriorityQueue<>();
5+
private int size;
6+
7+
public LeetCode_703_129(int k, int[] nums) {
8+
KthLargest(k, nums);
9+
}
10+
11+
public void KthLargest(int k, int[] nums) {
12+
this.size = k;
13+
for (int n : nums) add(n);
14+
}
15+
16+
public int add(int val) {
17+
if (minHeap.size() < size) minHeap.offer(val);
18+
else if (minHeap.peek() < val) {
19+
minHeap.poll();
20+
minHeap.offer(val);
21+
}
22+
return minHeap.peek();
23+
}
24+
25+
}

Week_03/id_129/TreeNode.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
public class TreeNode {
2+
int val;
3+
TreeNode left;
4+
TreeNode right;
5+
6+
TreeNode(int x) {
7+
val = x;
8+
}
9+
}

0 commit comments

Comments
 (0)