|
1 | 1 | import java.util.HashMap;
|
2 | 2 | import java.util.HashSet;
|
3 |
| -import java.util.Iterator; |
4 | 3 | import java.util.Map;
|
5 | 4 |
|
6 | 5 | public class Geegong {
|
7 | 6 |
|
8 |
| - public int[] topKFrequent(int[] nums, int k) { |
9 |
| - int[] result = new int[k]; |
10 | 7 |
|
11 |
| - // key : num element in nums / value : frequency of num elements |
12 |
| - Map<Integer, Integer> numMap = new HashMap<>(); |
| 8 | + public boolean containsDuplicate(int[] nums) { |
| 9 | + HashSet<Integer> uniques = new HashSet<>(); |
13 | 10 |
|
14 |
| - // key : frequency of num elements / value : HashSet<Integer> num elements |
15 |
| - Map<Integer, HashSet<Integer>> frequencyMap = new HashMap<>(); |
16 |
| - |
17 |
| - // most frequent numbers |
18 |
| - int maxCount = 0; |
19 |
| - |
20 |
| - // initialize numMap |
21 | 11 | for (int num : nums) {
|
22 |
| - if (numMap.containsKey(num)) { |
23 |
| - Integer alreadyCounted = numMap.get(num); |
24 |
| - numMap.put(num, alreadyCounted + 1); |
25 |
| - } else { |
26 |
| - numMap.put(num, 1); |
27 |
| - } |
28 |
| - } |
29 |
| - |
30 |
| - |
31 |
| - //numHashSetMap |
32 |
| - for (int num : numMap.keySet()) { |
33 |
| - int frequencyOfNum = numMap.get(num); |
34 |
| - maxCount = Math.max(maxCount, frequencyOfNum); |
35 |
| - |
36 |
| - if (frequencyMap.containsKey(frequencyOfNum)) { |
37 |
| - HashSet<Integer> alreadySet = frequencyMap.get(frequencyOfNum); |
38 |
| - alreadySet.add(num); |
39 |
| - |
40 |
| - frequencyMap.put(frequencyOfNum, alreadySet); |
41 |
| - |
42 |
| - } else { |
43 |
| - HashSet<Integer> newHashSet = new HashSet<>(); |
44 |
| - newHashSet.add(num); |
45 |
| - |
46 |
| - frequencyMap.put(frequencyOfNum, newHashSet); |
| 12 | + if (uniques.contains(num)) { |
| 13 | + return true; |
47 | 14 | }
|
48 |
| - } |
49 |
| - |
50 |
| - |
51 |
| - // maxCount 부터 decreasing |
52 |
| - int resultIndex=0; |
53 |
| - for(int frequency=maxCount; frequency>=0; frequency--) { |
54 |
| - if (resultIndex >= result.length) { |
55 |
| - return result; |
56 |
| - } |
57 |
| - |
58 |
| - if (frequencyMap.containsKey(frequency)) { |
59 |
| - HashSet<Integer> numElements = frequencyMap.get(frequency); |
60 | 15 |
|
61 |
| - for (int numElement : numElements) { |
62 |
| - result[resultIndex] = numElement; |
63 |
| - resultIndex++; |
64 |
| - |
65 |
| - |
66 |
| - if (resultIndex >= result.length) { |
67 |
| - return result; |
68 |
| - } |
69 |
| - } |
70 |
| - } |
| 16 | + uniques.add(num); |
71 | 17 | }
|
72 | 18 |
|
73 |
| - return result; |
74 |
| - } |
75 |
| - |
76 |
| - public boolean checkIsFull(int[] arr, int currIndex) { |
77 |
| - return currIndex >= arr.length; |
| 19 | + return false; |
78 | 20 | }
|
79 | 21 |
|
80 | 22 | }
|
|
0 commit comments