Skip to content

Commit 4501713

Browse files
authored
Merge pull request #1199 from mintheon/main
[mintheon] WEEK 01 solutions
2 parents 3b2d4ff + 55ac21d commit 4501713

File tree

4 files changed

+49
-38
lines changed

4 files changed

+49
-38
lines changed
Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
1-
import java.util.HashSet;
2-
import java.util.Set;
3-
41
class Solution {
52
public int longestConsecutive(int[] nums) {
63
Set<Integer> numSet = new HashSet<>();
4+
int max = 0;
75

86
for(int num : nums) {
97
numSet.add(num);
108
}
119

12-
int longestSize = 0;
13-
1410
for(int num : numSet) {
15-
if(!numSet.contains(num - 1)) {
16-
int current = num;
17-
int count = 1;
11+
if(numSet.contains(num - 1)) {
12+
continue;
13+
}
1814

19-
while(numSet.contains(current + 1)) {
20-
count++;
21-
current++;
22-
}
15+
int count = 1;
16+
int curNum = num;
2317

24-
longestSize = Math.max(count, longestSize);
18+
while(numSet.contains(curNum + 1)) {
19+
count++;
20+
curNum++;
2521
}
22+
23+
max = Math.max(max, count);
2624
}
2725

28-
return longestSize;
26+
return max;
2927
}
3028
}

merge-intervals/mintheon.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import java.util.Arrays;
2+
import java.util.LinkedList;
3+
4+
class Solution {
5+
public int[][] merge(int[][] intervals) {
6+
Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
7+
LinkedList<int[]> merged = new LinkedList<>();
8+
9+
for(int[] interval : intervals) {
10+
if(merged.isEmpty() || merged.getLast()[1] < interval[0]) {
11+
merged.add(interval);
12+
} else {
13+
merged.getLast()[1] = Math.max(merged.getLast()[1], interval[1]);
14+
}
15+
}
16+
17+
return merged.toArray(new int[merged.size()][]);
18+
}
19+
}

top-k-frequent-elements/mintheon.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
import java.util.HashMap;
2-
import java.util.Map;
3-
import java.util.Map.Entry;
4-
import java.util.PriorityQueue;
5-
61
class Solution {
72
public int[] topKFrequent(int[] nums, int k) {
83
int[] answer = new int[k];
9-
Map<Integer, Integer> frequent = new HashMap<>();
4+
Map<Integer, Integer> count = new HashMap<>();
105

11-
for(int num: nums) {
12-
frequent.put(num, frequent.getOrDefault(num, 1) + 1);
6+
for(int i = 0; i < nums.length; i++) {
7+
count.put(nums[i], count.getOrDefault(nums[i], 0) + 1);
138
}
149

15-
PriorityQueue<Entry<Integer, Integer>> pq = new PriorityQueue<>((a, b) -> b.getValue().compareTo(a.getValue()));
16-
pq.addAll(frequent.entrySet());
10+
PriorityQueue<int[]> queue = new PriorityQueue<>((a, b) -> b[1] - a[1]);
11+
12+
for(int key : count.keySet()) {
13+
queue.offer(new int[]{key, count.get(key)});
14+
}
1715

1816
for(int i = 0; i < k; i++) {
19-
answer[i] = pq.poll().getKey();
17+
int[] num = queue.poll();
18+
19+
answer[i] = num[0];
2020
}
2121

2222
return answer;

two-sum/mintheon.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,19 @@
22
import java.util.Map;
33

44
class Solution {
5-
/**
6-
공간복잡도: O(n)
7-
시간복잡도: O(n)
8-
*/
9-
105
public int[] twoSum(int[] nums, int target) {
11-
Map<Integer, Integer> numMap = new HashMap<>();
6+
Map<Integer, Integer> indexMap = new HashMap<>();
127

138
for(int i = 0; i < nums.length; i++) {
14-
numMap.put(nums[i], i);
15-
}
9+
int remain = target - nums[i];
1610

17-
for(int i = 0; i < nums.length; i++) {
18-
int pairNum = target - nums[i];
19-
if(numMap.containsKey(pairNum) && numMap.get(pairNum) != i) {
20-
return new int[]{i, numMap.get(target - nums[i])};
11+
if(indexMap.containsKey(remain)) {
12+
return new int[] {i, indexMap.get(remain)};
2113
}
14+
15+
indexMap.put(nums[i], i);
2216
}
2317

24-
return new int[2];
18+
return new int[]{};
2519
}
2620
}

0 commit comments

Comments
 (0)