diff --git a/src/main/java/Collections/Practice/CollectionBasics.java b/src/main/java/Collections/Practice/CollectionBasics.java index e45cb49..61dca34 100644 --- a/src/main/java/Collections/Practice/CollectionBasics.java +++ b/src/main/java/Collections/Practice/CollectionBasics.java @@ -2,6 +2,8 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; +import java.util.Set; public class CollectionBasics { public static void main(String[] args) { @@ -30,14 +32,13 @@ public static int sum(Collection numbers) { int total = 0; - // TODO: - // Loop through the collection - // Add each number to total + for (Integer num : numbers) { + total += num; + } return total; } - /* PROBLEM 2 Count how many numbers are even @@ -49,6 +50,11 @@ public static int countEven(Collection numbers) { // TODO: // Loop through the collection // If the number is even, increase count + for (Integer num : numbers){ + if(num % 2==0){ + count++; + } + } return count; } @@ -66,6 +72,10 @@ public static int findMax(Collection numbers) { // Loop through numbers // Update max if current number is larger + for (Integer num : numbers){ + max = Math.max(max, num); + } + return max; } @@ -81,7 +91,11 @@ public static boolean hasDuplicates(Collection numbers) { // Hint: // Compare the size of a collection with the size of a Set - return false; + Set set = new HashSet<>(numbers); + + + + return set.size() == numbers.size(); } @@ -96,6 +110,11 @@ public static int countOccurrences(Collection numbers, int target) { // TODO: // Loop through numbers // If number equals target, increase count + for(int i=0; i < numbers.size(); i++){ + if(numbers.contains(target)){ + count++; + } + } return count; } diff --git a/src/main/java/Collections/Practice/CommonMethodsDemo.java b/src/main/java/Collections/Practice/CommonMethodsDemo.java index b2dd6f9..8af821f 100644 --- a/src/main/java/Collections/Practice/CommonMethodsDemo.java +++ b/src/main/java/Collections/Practice/CommonMethodsDemo.java @@ -131,24 +131,33 @@ public static void main(String[] args) { Add the following values: 10, 20, 30, 40, 50 */ + Collection numbers = new ArrayList<>(); + numbers.add(10); + numbers.add(20); + numbers.add(30); + numbers.add(40); + numbers.add(50); /* TODO 2: Print the size of the numbers collection */ + System.out.println(numbers.size()); /* TODO 3: Check if the collection contains 30 */ + System.out.println("Does collection contains 30? " + numbers.contains(30)); /* TODO 4: Remove the number 20 */ + numbers.remove(30); /* @@ -156,6 +165,10 @@ public static void main(String[] args) { Loop through the numbers collection and print each value */ + for(Integer num : numbers){ + System.out.println(num); + } + /* diff --git a/src/main/java/CollectionsHackerrank/CollectionsHackerrankProblems.java b/src/main/java/CollectionsHackerrank/CollectionsHackerrankProblems.java index 6c2f4e1..a6699a6 100644 --- a/src/main/java/CollectionsHackerrank/CollectionsHackerrankProblems.java +++ b/src/main/java/CollectionsHackerrank/CollectionsHackerrankProblems.java @@ -1,8 +1,6 @@ package CollectionsHackerrank; -import java.util.List; -import java.util.Map; -import java.util.Queue; +import java.util.*; public class CollectionsHackerrankProblems { public class CollectionsHackerrankPractice { @@ -24,8 +22,10 @@ public static void main(String[] args) { public static List removeDuplicates(List numbers) { // TODO: Implement this method + HashSet set = new HashSet<>(numbers); - return null; + + return new ArrayList<>(set); } /* @@ -39,8 +39,16 @@ public static List removeDuplicates(List numbers) { public static Map countFrequency(List numbers) { // TODO: Implement this method + Map map = new HashMap<>(); + for (Integer number : numbers) { + map.put(number, map.getOrDefault(number, 0) + 1); + } - return null; + + + + + return map; } /* @@ -54,6 +62,25 @@ public static Map countFrequency(List numbers) { public static Integer firstUnique(List numbers) { // TODO: Implement this method + Map map = new HashMap<>(); + for (Integer number : numbers) { + map.put(number, map.getOrDefault(number, 0) + 1); + + } + // next, return the first key that value = 1 + // num = numbers list + // 4 insert key check value, no. + // 5 Insert key check value, yes. + for (Integer num : numbers){ + if(map.get(num) == 1){ + return num; + + } + + + } + + return null; } @@ -71,6 +98,21 @@ public static Integer firstUnique(List numbers) { public static boolean twoSum(List numbers, int target) { // TODO: Implement this method + HashSet set = new HashSet<>(); + + int complement = 0; + + for (Integer num : numbers) { + complement = target - num; + + if (set.contains(complement)) { + return true; + } + + set.add(num); + + } + return false; } @@ -86,8 +128,10 @@ public static boolean twoSum(List numbers, int target) { public static int countUniqueWords(List words) { // TODO: Implement this method + HashSet set = new HashSet<>(words); - return 0; + + return set.size(); } /* @@ -101,8 +145,16 @@ public static int countUniqueWords(List words) { public static Queue reverseQueue(Queue queue) { // TODO: Implement this method - - return null; + Stack stack = new Stack<>(); + Queue reverse = new ArrayDeque<>(); + while (!(queue.isEmpty())) { + stack.push(queue.poll()); + + } + while (!(stack.isEmpty())){ + reverse.add(stack.pop()); + } + return reverse; } /* @@ -118,9 +170,23 @@ public static Queue reverseQueue(Queue queue) { */ public static boolean isBalanced(String expression) { - // TODO: Implement this method + Stack stack = new Stack<>(); - return false; + for (int i = 0; i < expression.length(); i++) { + char ch = expression.charAt(i); + + if (ch == '(') { + stack.push(ch); + } + else if (ch == ')') { + if (stack.isEmpty()) { + return false; + } + stack.pop(); + } + } + + return stack.isEmpty(); } /* @@ -134,6 +200,21 @@ public static boolean isBalanced(String expression) { public static Integer mostFrequent(List numbers) { // TODO: Implement this method + int max = 0; + HashMap map = new HashMap<>(); + for(Integer num : numbers){ + map.put(num, map.getOrDefault(num, 0)+1); + max = Math.max(max, map.get(num)); + } + + for(Integer number: numbers){ + + if (max == map.get(number)){ + return number; + } + } + + return null; } @@ -154,8 +235,21 @@ public static Integer mostFrequent(List numbers) { public static Map> groupByLength(List words) { // TODO: Implement this method + HashMap> map = new HashMap<>(); + for(String word : words){ + Integer length = word.length(); - return null; + if(!(map.containsKey(length))){ + map.put(length, new ArrayList<>()); + } + + map.get(length).add(word); + + + } + + + return map; } /* @@ -171,8 +265,21 @@ public static Map> groupByLength(List words) { public static int maxSlidingWindowSum(List numbers, int k) { // TODO: Implement this method + int windowSum = 0; + for (int i = 0; i < k; i++) { + windowSum += numbers.get(i); + } + + int maxSum = windowSum; + + // 2) slide the window + for (int right = k; right < numbers.size(); right++) { + int left = right - k; // index leaving the window + windowSum = windowSum - numbers.get(left) + numbers.get(right); + maxSum = Math.max(maxSum, windowSum); + } - return 0; + return maxSum; } } } diff --git a/src/main/java/Hierachy/Hierarchy.java b/src/main/java/Hierachy/Hierarchy.java index b79931f..6ed09ce 100644 --- a/src/main/java/Hierachy/Hierarchy.java +++ b/src/main/java/Hierachy/Hierarchy.java @@ -5,6 +5,7 @@ public class Hierarchy { public static void main(String[] args) { + // LIST EXAMPLE List list = new ArrayList<>(); list.add("Apple"); diff --git a/src/main/java/Iterable/Examples/ForEachLoopDemo.java b/src/main/java/Iterable/Examples/ForEachLoopDemo.java index a6d2198..eeee705 100644 --- a/src/main/java/Iterable/Examples/ForEachLoopDemo.java +++ b/src/main/java/Iterable/Examples/ForEachLoopDemo.java @@ -18,20 +18,32 @@ public static void main(String[] args) { // TODO: // Use a for-each loop to print each student name + for(String name : students){ + System.out.println(name); + } + System.out.println("\nPrinting students in uppercase:"); // TODO: // Use a for-each loop to print each name in uppercase + for(String name : students){ + System.out.println(name.toUpperCase()); + } System.out.println("\nCount the number of students:"); int count = 0; + for(int i=0; i < students.size(); i++){ + count++; + } + // TODO: // Use a for-each loop to count how many students are in the list + System.out.println("Total students: " + count); } } diff --git a/src/main/java/Iterable/Examples/IteratorDemo.java b/src/main/java/Iterable/Examples/IteratorDemo.java index b09fca7..e5d4cbf 100644 --- a/src/main/java/Iterable/Examples/IteratorDemo.java +++ b/src/main/java/Iterable/Examples/IteratorDemo.java @@ -27,6 +27,10 @@ public static void main(String[] args) { // Use iterator.hasNext() and iterator.next() // Print each number + while (iterator.hasNext()) + { + System.out.println(iterator.next()); + } System.out.println("\nRemoving odd numbers using Iterator"); @@ -36,6 +40,13 @@ public static void main(String[] args) { // Use iterator to remove odd numbers // Remember: use iterator.remove() + while (iterator.hasNext()) + { + if(! (iterator.next() % 2 == 0)){ + iterator.remove(); + } + } + System.out.println("\nUpdated list:"); System.out.println(numbers); diff --git a/src/main/java/Iterable/Practice/IterableWarmups.java b/src/main/java/Iterable/Practice/IterableWarmups.java index 9e9de94..421d19e 100644 --- a/src/main/java/Iterable/Practice/IterableWarmups.java +++ b/src/main/java/Iterable/Practice/IterableWarmups.java @@ -15,11 +15,12 @@ public static void main(String[] args) { numbers.add(8); System.out.println("Sum: " + sum(numbers)); - System.out.println("Even count: " + countEven(numbers)); - System.out.println("Max value: " + findMax(numbers)); + System.out.println("Even count: " + countEven(numbers)); + System.out.println("Max value: " + findMax(numbers)); } + /* PROBLEM 1 Return the sum of all numbers in the iterable @@ -31,6 +32,10 @@ public static int sum(Iterable numbers) { // TODO: // Use a for-each loop to calculate the sum + for (Integer num : numbers){ + total += num; + } + return total; } @@ -46,6 +51,12 @@ public static int countEven(Iterable numbers) { // TODO: // Loop through numbers // Increment count if number is even + for(Integer num : numbers){ + if(num % 2 ==0){ + count++; + } + } + return count; } @@ -63,6 +74,11 @@ public static int findMax(Iterable numbers) { // Loop through numbers // Update max if current number is larger + for(Integer num : numbers){ + max = Math.max(max, num); + } + + return max; } diff --git a/src/main/java/Lists/ArrayLists/ArrayListProblems.java b/src/main/java/Lists/ArrayLists/ArrayListProblems.java index baf4dfa..2921c6b 100644 --- a/src/main/java/Lists/ArrayLists/ArrayListProblems.java +++ b/src/main/java/Lists/ArrayLists/ArrayListProblems.java @@ -34,8 +34,14 @@ public static void main(String[] args) { public static int sum(List nums) { // TODO: Implement this method + int sum = 0; + for(Integer num : nums){ - return 0; + sum += num; + + } + + return sum; } /* @@ -49,8 +55,15 @@ public static int sum(List nums) { public static int countEvens(List nums) { // TODO: Implement this method + int counter = 0; + for(Integer num : nums){ + if (num % 2 ==0 ){ + counter++; + } + } - return 0; + + return counter; } /* @@ -66,9 +79,20 @@ public static int countEvens(List nums) { */ public static boolean hasDuplicate(List nums) { - // TODO: Implement this method + ArrayList findDup = new ArrayList<>(); + + for (Integer num : nums) { + + if (findDup.contains(num)) { + return true; + } + + findDup.add(num); + } return false; + + } /* @@ -82,8 +106,13 @@ public static boolean hasDuplicate(List nums) { public static int findMax(List nums) { // TODO: Implement this method + int max = nums.get(0); - return 0; + for (Integer num : nums){ + max = Math.max(max, num); + } + + return max; } /* @@ -98,8 +127,18 @@ public static int findMax(List nums) { */ public static List reverse(List nums) { + ArrayList reverseList = new ArrayList<>(nums.size()-1); + int counter = 0; + // TODO: Implement this method - return null; + for (int i = nums.size()-1; i >= 0; i--){ + reverseList.add(counter, nums.get(i)); + counter++; + + } + + + return reverseList; } } diff --git a/src/main/java/Lists/LinkedLists/LinkedListProblems.java b/src/main/java/Lists/LinkedLists/LinkedListProblems.java index 178a2ba..94de027 100644 --- a/src/main/java/Lists/LinkedLists/LinkedListProblems.java +++ b/src/main/java/Lists/LinkedLists/LinkedListProblems.java @@ -38,6 +38,7 @@ public static void main(String[] args) { public static void addToFront(LinkedList list, int value) { // TODO: Implement this method + list.addFirst(value); } @@ -52,6 +53,7 @@ public static void addToFront(LinkedList list, int value) { public static void addToEnd(LinkedList list, int value) { // TODO: Implement this method + list.addLast(value); } @@ -67,6 +69,7 @@ public static void removeFirstElement(LinkedList list) { // TODO: Implement this method + list.removeFirst(); } /* @@ -80,6 +83,7 @@ public static void removeFirstElement(LinkedList list) { public static void removeLastElement(LinkedList list) { // TODO: Implement this method + list.removeLast(); } @@ -94,8 +98,9 @@ public static void removeLastElement(LinkedList list) { public static int getFirstElement(LinkedList list) { // TODO: Implement this method + return list.getFirst(); + - return 0; } /* @@ -110,6 +115,7 @@ public static int getLastElement(LinkedList list) { // TODO: Implement this method - return 0; + + return list.getLast(); } } diff --git a/src/main/java/Maps/HashMap/HashMapProblems.java b/src/main/java/Maps/HashMap/HashMapProblems.java index 04b5567..6a0dc54 100644 --- a/src/main/java/Maps/HashMap/HashMapProblems.java +++ b/src/main/java/Maps/HashMap/HashMapProblems.java @@ -22,6 +22,8 @@ public static void main(String[] args) { removeItem(inventory, "Oranges"); System.out.println("After Removal: " + inventory); + + } /* @@ -30,11 +32,12 @@ public static void main(String[] args) { Example Input: ("Apples", 10) - Output: {"Apples"=10} + Output: {"Apples" = 10} */ public static void addItem(Map map, String item, int quantity) { // TODO: Implement this method + map.put(item, quantity); } @@ -50,7 +53,8 @@ public static int getQuantity(Map map, String item) { // TODO: Implement this method - return 0; + + return map.get(item); } /* @@ -64,6 +68,7 @@ public static int getQuantity(Map map, String item) { public static void updateQuantity(Map map, String item, int newQuantity) { // TODO: Implement this method + map.put(item, newQuantity); } @@ -78,6 +83,7 @@ public static void updateQuantity(Map map, String item, int new public static void removeItem(Map map, String item) { // TODO: Implement this method + map.remove(item); } @@ -92,7 +98,19 @@ public static void removeItem(Map map, String item) { public static Map countFrequency(List numbers) { // TODO: Implement this method + Map frequent = new HashMap<>(); + + + + for(Integer num : numbers){ + frequent.put(num,frequent.getOrDefault(num, 0)+1); + } + + + + + - return null; + return frequent; } } diff --git a/src/main/java/Maps/LinkedHashMap/LinkedHashMapProblems.java b/src/main/java/Maps/LinkedHashMap/LinkedHashMapProblems.java index e8bbdc2..587c370 100644 --- a/src/main/java/Maps/LinkedHashMap/LinkedHashMapProblems.java +++ b/src/main/java/Maps/LinkedHashMap/LinkedHashMapProblems.java @@ -1,8 +1,6 @@ package Maps.LinkedHashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public class LinkedHashMapProblems { public static void main(String[] args) { @@ -33,6 +31,7 @@ public static void main(String[] args) { public static void addStudent(Map map, String name, int grade) { // TODO: Implement this method + map.put(name,grade); } @@ -47,6 +46,7 @@ public static void addStudent(Map map, String name, int grade) public static void updateGrade(Map map, String name, int newGrade) { // TODO: Implement this method + map.put(name,newGrade); } @@ -61,6 +61,9 @@ public static void updateGrade(Map map, String name, int newGra public static void removeStudent(Map map, String name) { // TODO: Implement this method + map.remove(name); + + } @@ -75,8 +78,15 @@ public static void removeStudent(Map map, String name) { public static String getFirstInserted(Map map) { // TODO: Implement this method + Set keys = map.keySet(); + + + Iterator iterator = keys.iterator(); + return iterator.next(); + + + - return null; } /* @@ -91,7 +101,17 @@ public static String getFirstInserted(Map map) { public static Map wordFrequency(List words) { // TODO: Implement this method + Map frequent = new LinkedHashMap<>(); + + + + for(String items : words){ + frequent.put(items,frequent.getOrDefault(items, 0)+1); + } + + + - return null; + return frequent; } } diff --git a/src/main/java/Maps/TreeMap/TreeMapProblems.java b/src/main/java/Maps/TreeMap/TreeMapProblems.java index b101d2e..2e53f25 100644 --- a/src/main/java/Maps/TreeMap/TreeMapProblems.java +++ b/src/main/java/Maps/TreeMap/TreeMapProblems.java @@ -1,5 +1,7 @@ package Maps.TreeMap; +import java.util.Iterator; +import java.util.Set; import java.util.TreeMap; public class TreeMapProblems { @@ -31,6 +33,7 @@ public static void main(String[] args) { public static void addPlayer(TreeMap map, int rank, String name) { // TODO: Implement this method + map.put(rank, name); } @@ -46,7 +49,8 @@ public static String getTopPlayer(TreeMap map) { // TODO: Implement this method - return null; + + return map.get(1); } /* @@ -61,7 +65,7 @@ public static String getLowestPlayer(TreeMap map) { // TODO: Implement this method - return null; + return map.get(map.size()); } /* @@ -75,6 +79,7 @@ public static String getLowestPlayer(TreeMap map) { public static void removePlayer(TreeMap map, int rank) { // TODO: Implement this method + map.remove(rank); } @@ -86,10 +91,12 @@ public static void removePlayer(TreeMap map, int rank) { Input: rank=2, map={1="A",2="B",3="C"} Output: 3 */ + public static Integer getNextRank(TreeMap map, int rank) { // TODO: Implement this method - return null; + + return map.higherKey(rank); } } diff --git a/src/main/java/Queues/ArrayDeque/ArrayDequeProblems.java b/src/main/java/Queues/ArrayDeque/ArrayDequeProblems.java index dac03cf..33ee302 100644 --- a/src/main/java/Queues/ArrayDeque/ArrayDequeProblems.java +++ b/src/main/java/Queues/ArrayDeque/ArrayDequeProblems.java @@ -31,6 +31,7 @@ public static void main(String[] args) { public static void addToFront(ArrayDeque deque, int value) { // TODO: Implement this method + deque.addFirst(value); } @@ -45,6 +46,7 @@ public static void addToFront(ArrayDeque deque, int value) { public static void addToBack(ArrayDeque deque, int value) { // TODO: Implement this method + deque.addLast(value); } @@ -59,6 +61,7 @@ public static void addToBack(ArrayDeque deque, int value) { public static void removeFront(ArrayDeque deque) { // TODO: Implement this method + deque.removeFirst(); } @@ -73,6 +76,7 @@ public static void removeFront(ArrayDeque deque) { public static void removeBack(ArrayDeque deque) { // TODO: Implement this method + deque.removeLast(); } @@ -88,7 +92,7 @@ public static Integer peekFront(ArrayDeque deque) { // TODO: Implement this method - return null; + return deque.getFirst(); } /* @@ -103,6 +107,6 @@ public static Integer peekBack(ArrayDeque deque) { // TODO: Implement this method - return null; + return deque.getLast(); } } diff --git a/src/main/java/Queues/Deque/DequeProblems.java b/src/main/java/Queues/Deque/DequeProblems.java index 7ef0c06..e7017f0 100644 --- a/src/main/java/Queues/Deque/DequeProblems.java +++ b/src/main/java/Queues/Deque/DequeProblems.java @@ -7,6 +7,7 @@ public static void main(String[] args) { // You can test your methods here + } /* @@ -20,6 +21,7 @@ public static void main(String[] args) { public static void addFront(Deque deque, int value) { // TODO: Implement this method + deque.addFirst(value); } @@ -34,6 +36,7 @@ public static void addFront(Deque deque, int value) { public static void addBack(Deque deque, int value) { // TODO: Implement this method + deque.addLast(value); } @@ -49,7 +52,7 @@ public static Integer removeFront(Deque deque) { // TODO: Implement this method - return null; + return deque.removeFirst(); } /* @@ -64,7 +67,7 @@ public static Integer removeBack(Deque deque) { // TODO: Implement this method - return null; + return deque.removeLast(); } /* @@ -79,7 +82,7 @@ public static Integer peekFront(Deque deque) { // TODO: Implement this method - return null; + return deque.getFirst(); } /* @@ -94,7 +97,7 @@ public static Integer peekBack(Deque deque) { // TODO: Implement this method - return null; + return deque.getLast(); } } diff --git a/src/main/java/Sets/HashSet/HashSetProblems.java b/src/main/java/Sets/HashSet/HashSetProblems.java index a36c570..d50efd7 100644 --- a/src/main/java/Sets/HashSet/HashSetProblems.java +++ b/src/main/java/Sets/HashSet/HashSetProblems.java @@ -1,5 +1,6 @@ package Sets.HashSet; +import java.util.HashSet; import java.util.List; import java.util.Set; @@ -21,6 +22,7 @@ public static void main(String[] args) { public static void addElement(Set set, String value) { // TODO: Implement this method + set.add(value); } @@ -36,7 +38,7 @@ public static boolean containsValue(Set set, String value) { // TODO: Implement this method - return false; + return set.contains(value); } /* @@ -50,6 +52,7 @@ public static boolean containsValue(Set set, String value) { public static void removeValue(Set set, String value) { // TODO: Implement this method + set.remove(value); } @@ -65,7 +68,8 @@ public static int getUniqueCount(Set set) { // TODO: Implement this method - return 0; + + return set.size(); } /* @@ -80,6 +84,6 @@ public static Set getUniqueValues(List numbers) { // TODO: Implement this method - return null; + return new HashSet<>(numbers); } }