Skip to content

Commit 693ee4a

Browse files
committed
week 3 homework
1 parent 601c593 commit 693ee4a

File tree

2 files changed

+121
-0
lines changed

2 files changed

+121
-0
lines changed

Week_03/id_90/LeetCode_703_090.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import com.eclipsesource.json.JsonArray;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
import java.util.PriorityQueue;
7+
8+
/**
9+
*
10+
*/
11+
class KthLargest {
12+
int size;
13+
PriorityQueue < Integer > minheap;
14+
public KthLargest(int k, int[] nums) {
15+
minheap = new PriorityQueue < > (k + 1);
16+
size = k;
17+
for (int num: nums) {
18+
minheap.offer(num);
19+
if (minheap.size() > k) minheap.poll();
20+
}
21+
}
22+
23+
public int add(int val) {
24+
if (minheap.isEmpty() || minheap.size() < size) minheap.offer(val);
25+
else if (val >= minheap.peek()) {
26+
minheap.offer(val);
27+
}
28+
if (minheap.size() > size) minheap.poll();
29+
return minheap.peek();
30+
}
31+
}
32+
33+
public class TestHeap {
34+
public static void main(String[] args) {
35+
int[] arr = {
36+
4,
37+
5,
38+
8,
39+
2
40+
};
41+
KthLargest kthLargest = new KthLargest(3, arr);
42+
int add1 = kthLargest.add(3);
43+
int add2 = kthLargest.add(5);
44+
System.out.println(add1);
45+
System.out.println(add2);
46+
}
47+
}

Week_03/id_90/LeetCode_997_090.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import com.eclipsesource.json.JsonArray;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
7+
/**
8+
*
9+
*/
10+
class SolutionGraph {
11+
public int findJudge(int N, int[][] trust) {
12+
//记录每个人被人相信的次数
13+
int[] outgoing = new int[N+1];
14+
//记录每个人相信别人的次数
15+
int[] incoming = new int[N+1];
16+
for(int i=0; i<trust.length; i++) {
17+
int o = trust[i][0];
18+
int in = trust[i][1];
19+
outgoing[o] += 1;
20+
incoming[in] += 1;
21+
}
22+
for(int i=1; i<N+1; i++) {
23+
//相信i的人N-1个且i相信的人为0
24+
if(incoming[i] == N-1 && outgoing[i] == 0)
25+
return i;
26+
}
27+
return -1;
28+
}
29+
}
30+
31+
public class TestGraph {
32+
public static int[] stringToIntegerArray(String input) {
33+
input = input.trim();
34+
input = input.substring(1, input.length() - 1);
35+
if (input.length() == 0) {
36+
return new int[0];
37+
}
38+
39+
String[] parts = input.split(",");
40+
int[] output = new int[parts.length];
41+
for(int index = 0; index < parts.length; index++) {
42+
String part = parts[index].trim();
43+
output[index] = Integer.parseInt(part);
44+
}
45+
return output;
46+
}
47+
48+
public static int[][] stringToInt2dArray(String input) {
49+
JsonArray jsonArray = JsonArray.readFrom(input);
50+
if (jsonArray.size() == 0) {
51+
return new int[0][0];
52+
}
53+
54+
int[][] arr = new int[jsonArray.size()][];
55+
for (int i = 0; i < arr.length; i++) {
56+
JsonArray cols = jsonArray.get(i).asArray();
57+
arr[i] = stringToIntegerArray(cols.toString());
58+
}
59+
return arr;
60+
}
61+
62+
public static void main(String[] args) throws IOException {
63+
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
64+
String line;
65+
while ((line = in.readLine()) != null) {
66+
int N = Integer.parseInt(line);
67+
line = in.readLine();
68+
int[][] trust = stringToInt2dArray(line);
69+
int ret = new SolutionGraph().findJudge(N, trust);
70+
String out = String.valueOf(ret);
71+
System.out.print(out);
72+
}
73+
}
74+
}

0 commit comments

Comments
 (0)