-
Notifications
You must be signed in to change notification settings - Fork 41
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
Space - Diana #19
base: master
Are you sure you want to change the base?
Space - Diana #19
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.
Not bad Diana, you hit the learning goals here. Well done. You do have some work to do on space/time complexity. See my comments on these and let me know what questions you have.
# Time Complexity: O(n) | ||
# Space Complexity: O(1) | ||
|
||
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.
👍 , however you have O(n) space complexity.
array_num_hash = num_hash.to_a | ||
|
||
# sort by occurences | ||
sorted_array_num_hash = array_num_hash.sort_by {|num| -num[1]} |
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.
just noting this is an O(n log n) operation.
# Time Complexity: O(n^2) in worst case because of the sorting to be done | ||
# Space Complexity: O(1) | ||
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.
You have an O(n log n) time complexity algorithm which is pretty good and O(n) space complexity because you're making a hash and an array both proportional to the size of the original list.
Hash Table Practice
Congratulations! You're submitting your assignment!
Comprehension Questions
- Hash values are uniformly distributed
- Keys that are close have hash values that are far apart
- Hashing appears to be random