Skip to content

Commit

Permalink
update post
Browse files Browse the repository at this point in the history
  • Loading branch information
dev-jonghoonpark committed May 29, 2024
1 parent 5e40e17 commit 3288e35
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions _posts/2024-04-18-leetcode-347.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ date: 2024-04-18 12:30:00 +0900

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

## 내가 작성한 풀이

```java
public int[] topKFrequent(int[] nums, int k) {
Map<Integer, Integer> counter = new HashMap<>();

Arrays.stream(nums)
.forEach(num -> {
Integer count = counter.get(num);
counter.put(num, count == null ? 1 : count + 1);
counter.put(num, counter.getOrDefault(num, 0) + 1);
});

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

이 코드의 시간 복잡도는 O(nlogn)이고, 공간 복잡도는 O(n)이다. (정렬으로 인해 nlogn 이다.)
### TC, SC

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

0 comments on commit 3288e35

Please sign in to comment.