-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
All finished #43
base: master
Are you sure you want to change the base?
All finished #43
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work Drew, your functions work, but you're off on the time/space complexity. Take a look at my comments and let me know if you have any questions.
def grouped_anagrams(strings): | ||
""" This method will return an array of arrays. | ||
Each subarray will have strings which are anagrams of each other | ||
Time Complexity: ? | ||
Space Complexity: ? | ||
Time Complexity: O(n) | ||
Space Complexity: O(n log n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 The time complexity is right if the words are all of limited length (like english words).
The space complexity is O(n) because you're building a dictionary of n words.
def top_k_frequent_elements(nums, k): | ||
""" This method will return the k most common elements | ||
In the case of a tie it will select the first occuring element. | ||
Time Complexity: ? | ||
Space Complexity: ? | ||
Time Complexity: O(n) | ||
Space Complexity: O(n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 However your time complexity is O(nk) because you're looping through the words and k times finding the maximum word (most common).
for i in range(k): | ||
highest_freq_value = max(highest_k_hash, key=highest_k_hash.get) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that you have a loop here which runs k times and inside it you're going through the dictionary (of max n elements) and finding the maximum entry. So O(nk)
Hash Table Practice
Congratulations! You're submitting your assignment!
Comprehension Questions