Skip to content

Commit 52df302

Browse files
committed
add q215/q347
1 parent 89d3a85 commit 52df302

File tree

7 files changed

+93
-16
lines changed

7 files changed

+93
-16
lines changed

.idea/workspace.xml

+28-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+7-3
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,14 @@
4848
* [q54_螺旋矩阵](/src/数组操作/q54_螺旋矩阵)
4949
* [q73_矩阵置零](/src/数组操作/q73_矩阵置零)
5050

51-
### 栈操作
51+
### 栈相关
52+
53+
* [q20_有效的括号](/src/栈相关/q20_有效的括号)
54+
* [q224_基本计算器](/src/栈相关/q224_基本计算器)
55+
56+
### 堆相关
57+
5258

53-
* [q20_有效的括号](/src/栈操作/q20_有效的括号)
54-
* [q224_基本计算器](/src/栈操作/q224_基本计算器)
5559

5660
### 区间合并
5761

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package 堆相关.q215_数组中的第K个最大元素;
2+
3+
import java.util.PriorityQueue;
4+
5+
/**
6+
* 利用大根堆实现 o(n*log(k))
7+
*/
8+
public class Solution {
9+
10+
public int findKthLargest(int[] nums, int k) {
11+
PriorityQueue<Integer> heap =
12+
new PriorityQueue<>((n1, n2) -> n1 - n2);
13+
14+
for (int n: nums) {
15+
heap.add(n);
16+
if (heap.size() > k){
17+
heap.poll();
18+
}
19+
}
20+
21+
return heap.poll();
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package 堆相关.q347_前K个高频元素;
2+
3+
import java.util.*;
4+
5+
/**
6+
* 利用大根堆(PriorityQueue)实现 o(n*log(k))
7+
*/
8+
class Solution {
9+
public List<Integer> topKFrequent(int[] nums, int k) {
10+
11+
HashMap<Integer, Integer> count = new HashMap<>();
12+
for (int n : nums) {
13+
count.put(n, count.getOrDefault(n, 0) + 1);
14+
}
15+
16+
PriorityQueue<Integer> heap = new PriorityQueue<>(Comparator.comparingInt(count::get));
17+
18+
for (int n : count.keySet()) {
19+
heap.add(n);
20+
if (heap.size() > k) {
21+
heap.poll();
22+
}
23+
}
24+
25+
List<Integer> topK = new LinkedList<>();
26+
while (!heap.isEmpty()) {
27+
topK.add(heap.poll());
28+
}
29+
Collections.reverse(topK);
30+
return topK;
31+
}
32+
}

src/栈操作/q20_有效的括号/Solution.java src/栈相关/q20_有效的括号/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package 栈操作.q20_有效的括号;
1+
package 栈相关.q20_有效的括号;
22

33
import java.util.Stack;
44

src/栈操作/q224_基本计算器/f1/Solution.java src/栈相关/q224_基本计算器/f1/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package 栈操作.q224_基本计算器.f1;
1+
package 栈相关.q224_基本计算器.f1;
22

33
import java.util.Stack;
44

src/栈操作/q224_基本计算器/f2/Solution.java src/栈相关/q224_基本计算器/f2/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package 栈操作.q224_基本计算器.f2;
1+
package 栈相关.q224_基本计算器.f2;
22

33
import java.util.Stack;
44

0 commit comments

Comments
 (0)