-
Notifications
You must be signed in to change notification settings - Fork 39
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
Earth - Anya #25
base: master
Are you sure you want to change the base?
Earth - Anya #25
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 Anya, I had some feedback regarding space/time complexity. Hopefully my feedback here is clear. Let me know if it's not and I'm happy to try to clarify.
# Time Complexity: O(n * m) n is the length of the array, m is the max length of string within the array. | ||
# Could pull chars method to run first on each element of strings, for O(n) n being the longest string or array. | ||
# Space Complexity: O(n) | ||
|
||
def grouped_anagrams(strings) |
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.
👍 But the time complexity is O(n) if the strings are limited in size (so you can ignore the sort because it's limited in size), or O(n * m log m) where m is the length of the strings, if the string is not limited in size.
# Time Complexity: O(n) n is list length | ||
# Space Complexity: O(n^2 * k) is that right? | ||
def top_k_frequent_elements(list, k) |
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 O(n log n) because you have an O(n) loop (the list.each
loop) then a sort (O(n log n)), and followed by another loop which goes k times where k <= n.
So the time complexity is O(n + n log n + k) ==> O(n log n) because n log n
is the dominate term. It's larger than n and k.
In the space complexity you're creating a hash O(n), a sorted hash O(n), and k_most_common_ele
. So O(n + n + k) and so the final space complexity is O(n).
Hash Table Practice
Congratulations! You're submitting your assignment!
Comprehension Questions