|
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