diff --git a/contains-duplicate/mintheon.java b/contains-duplicate/mintheon.java new file mode 100644 index 000000000..cb91a7b41 --- /dev/null +++ b/contains-duplicate/mintheon.java @@ -0,0 +1,14 @@ +import java.util.HashSet; +import java.util.Set; + +class Solution { + public boolean containsDuplicate(int[] nums) { + Set numSet = new HashSet(); + + for(int num : nums) { + numSet.add(num); + } + + return numSet.size() != nums.length; + } +} diff --git a/house-robber/mintheon.java b/house-robber/mintheon.java new file mode 100644 index 000000000..bc17b3851 --- /dev/null +++ b/house-robber/mintheon.java @@ -0,0 +1,28 @@ +class Solution { + public int rob(int[] nums) { + int[] sums = new int[nums.length]; + + sums[0] = nums[0]; + + if (nums.length > 1) { + sums[1] = nums[1]; + } + + if (nums.length > 2) { + sums[2] = nums[0] + nums[2]; + } + + if (nums.length > 3) { + for (int i = 3; i < nums.length; i++) { + sums[i] = Math.max(nums[i] + sums[i - 2], nums[i] + sums[i - 3]); + } + } + + int max = 0; + for(int sum : sums) { + max = Math.max(sum, max); + } + + return max; + } +} diff --git a/longest-consecutive-sequence/mintheon.java b/longest-consecutive-sequence/mintheon.java new file mode 100644 index 000000000..1cebd2166 --- /dev/null +++ b/longest-consecutive-sequence/mintheon.java @@ -0,0 +1,30 @@ +import java.util.HashSet; +import java.util.Set; + +class Solution { + public int longestConsecutive(int[] nums) { + Set numSet = new HashSet<>(); + + for(int num : nums) { + numSet.add(num); + } + + int longestSize = 0; + + for(int num : numSet) { + if(!numSet.contains(num - 1)) { + int current = num; + int count = 1; + + while(numSet.contains(current + 1)) { + count++; + current++; + } + + longestSize = Math.max(count, longestSize); + } + } + + return longestSize; + } +} diff --git a/top-k-frequent-elements/mintheon.java b/top-k-frequent-elements/mintheon.java new file mode 100644 index 000000000..da00d043f --- /dev/null +++ b/top-k-frequent-elements/mintheon.java @@ -0,0 +1,24 @@ +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.PriorityQueue; + +class Solution { + public int[] topKFrequent(int[] nums, int k) { + int[] answer = new int[k]; + Map frequent = new HashMap<>(); + + for(int num: nums) { + frequent.put(num, frequent.getOrDefault(num, 1) + 1); + } + + PriorityQueue> pq = new PriorityQueue<>((a, b) -> b.getValue().compareTo(a.getValue())); + pq.addAll(frequent.entrySet()); + + for(int i = 0; i < k; i++) { + answer[i] = pq.poll().getKey(); + } + + return answer; + } +} diff --git a/valid-palindrome/mintheon.java b/valid-palindrome/mintheon.java new file mode 100644 index 000000000..f284704e3 --- /dev/null +++ b/valid-palindrome/mintheon.java @@ -0,0 +1,27 @@ +class Solution { + public boolean isPalindrome(String s) { + int start = 0; + int end = s.length() - 1; + + while(start < end) { + if(!Character.isLetterOrDigit(s.charAt(start))) { + start++; + continue; + } + + if(!Character.isLetterOrDigit(s.charAt(end))){ + end--; + continue; + } + + if(Character.toLowerCase(s.charAt(start)) != Character.toLowerCase(s.charAt(end))) { + return false; + } + + start++; + end--; + } + + return true; + } +}