diff --git a/contains-duplicate/JeonJe.java b/contains-duplicate/JeonJe.java new file mode 100644 index 0000000000..d406f2261a --- /dev/null +++ b/contains-duplicate/JeonJe.java @@ -0,0 +1,16 @@ +import java.util.*; + +// TC: O(n) +// SC: O(n) +class Solution { + public boolean containsDuplicate(int[] nums) { + Set set = new HashSet<>(); + for (int num : nums) { + if (set.contains(num)) { + return true; + } + set.add(num); + } + return false; + } +} diff --git a/longest-consecutive-sequence/JeonJe.java b/longest-consecutive-sequence/JeonJe.java new file mode 100644 index 0000000000..67b05909a5 --- /dev/null +++ b/longest-consecutive-sequence/JeonJe.java @@ -0,0 +1,32 @@ +import java.util.*; + +// TC: O(n) +// SC: O(n) +class Solution { + public int longestConsecutive(int[] nums) { + if (nums.length == 0 || nums.length == 1) { + return nums.length; + } + + + HashSet set = new HashSet<>(); + for (int num : nums) { + set.add(num); + } + + int answer = 1; + for (Integer cur : set) { + if (set.contains(cur - 1)) { + continue; + } + + int right = cur; + while (set.contains(right + 1)) { + right++; + } + answer = Math.max(answer, right - cur + 1); + } + + return answer; + } +} diff --git a/top-k-frequent-elements/JeonJe.java b/top-k-frequent-elements/JeonJe.java new file mode 100644 index 0000000000..2096d59283 --- /dev/null +++ b/top-k-frequent-elements/JeonJe.java @@ -0,0 +1,24 @@ +import java.util.*; + +// TC: O(n log n) +// SC: O(n) +class Solution { + public int[] topKFrequent(int[] nums, int k) { + + Map map = new HashMap<>(); + for (int num : nums) { + Integer freq = map.getOrDefault(num, 0); + map.put(num, freq + 1); + } + + List> freqList = new ArrayList<>(map.entrySet()); + + return freqList.stream() + .sorted(Comparator.comparing(Map.Entry::getValue, Comparator.reverseOrder())) + .map(Map.Entry::getKey) + .limit(k) + .mapToInt(Integer::intValue) + .toArray(); + + } +} diff --git a/two-sum/JeonJe.java b/two-sum/JeonJe.java new file mode 100644 index 0000000000..7fa8238e38 --- /dev/null +++ b/two-sum/JeonJe.java @@ -0,0 +1,17 @@ +import java.util.*; + +// TC: O(n) +// SC: O(n) +class Solution { + public int[] twoSum(int[] nums, int target) { + Map map = new HashMap<>(); + for (int i = 0; i < nums.length; i++) { + if(map.containsKey((target - nums[i])) && map.get(target - nums[i]) != i) { + return new int[]{i, map.get(target - nums[i])}; + } + map.put(nums[i], i); + } + + return new int[0]; + } +}