-
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
Whit - Paper #32
base: master
Are you sure you want to change the base?
Whit - Paper #32
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.
Well done Whit, you hit the learning goals here. Well done.
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: ? | ||
Each subarray will have strings which are anagrams of each other. | ||
Time Complexity: O(n^2) -- or is it O(n) bc of the "continue"s? | ||
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.
👍 this works, but can you figure out a way to do this in O(n) time complexity using a dictionary?
freqs = __create_indexed_freq_map(nums) | ||
reverse_freqs = __create_reverse_indexed_freq_map(freqs) |
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.
I like the helpers
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 x m), where n is length of original list and m is number of repeats for each repeated value | ||
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.
👍 Just note that you are sorting, what does that do to the time/space complexity?
if y < 3 and x < 3: | ||
quadrants[0].append(board[i][j]) | ||
elif y < 3 and 3 <= x and x < 6: | ||
quadrants[1].append(board[i][j]) | ||
elif y < 3 and 6 <= x: | ||
quadrants[2].append(board[i][j]) | ||
elif 3 <= y and y < 6 and x < 3: | ||
quadrants[3].append(board[i][j]) | ||
elif 3 <= y and y < 6 and 3 <= x and x < 6: | ||
quadrants[4].append(board[i][j]) | ||
elif 3 <= y and y < 6 and x >= 6: | ||
quadrants[5].append(board[i][j]) | ||
elif 6 <= y and x < 3: | ||
quadrants[6].append(board[i][j]) | ||
elif 6 <= y and 3 <= x and x < 6: | ||
quadrants[7].append(board[i][j]) | ||
elif 6 <= y and x >= 6: | ||
quadrants[8].append(board[i][j]) | ||
|
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.
Could you do this with some kind of loop?
def valid_sudoku(board): | ||
""" This method will return the true if the table is still | ||
a valid sudoku table. | ||
Each element can either be a ".", or a digit 1-9 | ||
The same digit cannot appear twice or more in the same | ||
row, column or 3x3 subgrid | ||
Time Complexity: ? | ||
Space Complexity: ? | ||
Time Complexity: O(n^2) | ||
Space Complexity: O(n) ? its a little complicated and im tired |
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 a note that the time complexity is really O(1) since the size of the input never changes. The grid is always 9x9.
Hash Table Practice
Congratulations! You're submitting your assignment!
Comprehension Questions