diff --git a/src/Main.java b/src/Main.java index 036c766..87e9d38 100644 --- a/src/Main.java +++ b/src/Main.java @@ -5,7 +5,7 @@ public class Main { - // The time complexity is: + // The time complexity is: n^2 // YOUR ANSWER HERE public static void timesTable(int x) { for(int i = 1; i <= x; i++) { @@ -16,7 +16,7 @@ public static void timesTable(int x) { } } - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static void printLetters(String word) { char[] letters = word.toCharArray(); @@ -26,7 +26,7 @@ public static void printLetters(String word) { } } - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static boolean isBanned(String password) { String[] bannedPasswords = {"password", "hello", "qwerty"}; @@ -40,7 +40,7 @@ public static boolean isBanned(String password) { } - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static int computeProduct(int[] nums) { int total = 1; @@ -50,7 +50,7 @@ public static int computeProduct(int[] nums) { return total; } - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static void describeProduct(int[] nums) { System.out.println("About to compute the product of the array..."); @@ -59,7 +59,7 @@ public static void describeProduct(int[] nums) { } - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static int computeFactorial(int n) { int result = 1; @@ -71,6 +71,7 @@ public static int computeFactorial(int n) { // Assume that the largest number is no bigger than the length // of the array + // The time complexity is: n^2 public static void computeAllFactorials(int[] nums) { for(int num : nums) { int result = computeFactorial(num); @@ -80,7 +81,7 @@ public static void computeAllFactorials(int[] nums) { // assume that each String is bounded by a constant length - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static void checkIfContainedArrayList(ArrayList arr, String target) { if (arr.contains(target)) { @@ -93,7 +94,7 @@ public static void checkIfContainedArrayList(ArrayList arr, String targe // assume n = wordsA.length = wordsB.length // assume that each String is bounded by a constant length - // The time complexity is: + // The time complexity is: n^2 // YOUR ANSWER HERE public static boolean containsOverlap(String[] wordsA, String[] wordsB) { for(String wordA : wordsA) { @@ -107,7 +108,7 @@ public static boolean containsOverlap(String[] wordsA, String[] wordsB) { } // assume that each String is bounded by a constant length - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static boolean containsOverlap2(String[] wordsA, String[] wordsB) { Set wordsSet = new HashSet<>(); @@ -124,7 +125,7 @@ public static boolean containsOverlap2(String[] wordsA, String[] wordsB) { return false; } - // The time complexity is: + // The time complexity is: n // YOUR ANSWER HERE public static void printCharacters(char[] chars) { for (int i = 0; i < chars.length; i++) { @@ -132,14 +133,14 @@ public static void printCharacters(char[] chars) { System.out.println("The character at index " + i + " is " + character); } } - // The time complexity is: + // The time complexity is: 1 // YOUR ANSWER HERE public static double computeAverage(double a, double b) { return (a + b) / 2.0; } // assume that each String is bounded by a constant length - // The time complexity is: + // The time complexity is: 1 // YOUR ANSWER HERE public static void checkIfContainedHashSet(HashSet set, String target) { @@ -157,6 +158,7 @@ public static void checkIfContainedHashSet(HashSet set, String target) // assume that each String is bounded by a constant length // What is the time complexity of this method? // YOUR ANSWER HERE + // The time complexity is: n public static String emailLookup(String[] names, String[] emails, String queryName) { for(int i = 0; i < names.length; i++) { if (names[i].equals(queryName)) { @@ -173,14 +175,19 @@ public static String emailLookup(String[] names, String[] emails, String queryNa // assume that each String is bounded by a constant length // What is the time complexity of your solution? // YOUR ANSWER HERE + // The time complexity is: O(1) public static String emailLookupEfficient(HashMap namesToEmails, String queryName) { - return null; + if(namesToEmails.containsKey(queryName)){ + return namesToEmails.get(queryName); + } + return "Person not found"; } // What is the time complexity of this method? // assume that each String is bounded by a constant length // (assume the set and list have the same number of elements) // YOUR ANSWER HERE + // The time complexity is: n^2 public static boolean hasCommon(HashSet wordSet, ArrayList wordList) { for(String word : wordSet) { if(wordList.contains(word)) { @@ -194,7 +201,13 @@ public static boolean hasCommon(HashSet wordSet, ArrayList wordL // assume that each String is bounded by a constant length // What is the time complexity of your new solution? // YOUR ANSWER HERE + // The time complexity is: O(n) public static boolean hasCommonEfficient(HashSet wordSet, ArrayList wordList) { + for (String word : wordList) { + if (wordSet.contains(word)) { + return true; + } + } return false; } @@ -205,6 +218,8 @@ public static boolean hasCommonEfficient(HashSet wordSet, ArrayList wordSet, ArrayList wordSet, ArrayList