Skip to content

Commit 3288e35

Browse files
update post
1 parent 5e40e17 commit 3288e35

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

_posts/2024-04-18-leetcode-347.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@ date: 2024-04-18 12:30:00 +0900
1616

1717
해결할 수 있는 다양한 방법이 있겠지만, 연습삼아 최대한 stream을 사용하는 방향으로 해결해보았다.
1818

19+
## 내가 작성한 풀이
20+
1921
```java
2022
public int[] topKFrequent(int[] nums, int k) {
2123
Map<Integer, Integer> counter = new HashMap<>();
24+
2225
Arrays.stream(nums)
2326
.forEach(num -> {
24-
Integer count = counter.get(num);
25-
counter.put(num, count == null ? 1 : count + 1);
27+
counter.put(num, counter.getOrDefault(num, 0) + 1);
2628
});
2729

2830
return Arrays.copyOfRange(counter.entrySet().stream()
@@ -32,4 +34,6 @@ public int[] topKFrequent(int[] nums, int k) {
3234
}
3335
```
3436

35-
이 코드의 시간 복잡도는 O(nlogn)이고, 공간 복잡도는 O(n)이다. (정렬으로 인해 nlogn 이다.)
37+
### TC, SC
38+
39+
이 코드의 시간 복잡도는 O(nlogn)이고, 공간 복잡도는 O(n)이다. 빈도를 기준으로 map을 생성하기 때문에 n 보다 적은 경우가 대다수 이겠지만, 최악의 경우 n개의 map entry가 생성될 수 있다. (정렬으로 인해 nlogn 이다.)

0 commit comments

Comments
 (0)