Conversation
kyra-patton
left a comment
There was a problem hiding this comment.
🐾🐶 Hi Rebeca, it looks like you do have some understanding of breadth first search and graphs, however I think you misunderstood what dislikes represented so you're implementation doesn't work for the specification provided. See my review for full details. Feel free to reach out if you have questions and want to talk this over.
🔴
| self.graph = [[0 for column in range(V)] \ | ||
| for row in range(V)] | ||
|
|
||
| def possible_bipartition(self, dislikes): |
There was a problem hiding this comment.
Your code won't run in part because this line is indented incorrectly. If you intend this to be a method of your class Graph, you need to tab it over one level.
I think you may be slightly confused about what dislikes represents. dislikes is an adjacency list where the index of each element of the list represents a node, and where the elements are lists containing neighbors (or edges) of the node at that index.
For example in dislikes is the following:
[ [], [2, 3], [1, 4], [1], [2] ]
Then Node 0 (aka dog 0) has no neighbors/edges. Node 1 has neighbors 2 and 3 (meaning dog 1 dislikes dogs 2 and 3), Node 2 has neighbors 1 and 4, and so forth.
This should be sufficient for you to complete the problem. While you can create a Graph class, it shouldn't be necessary.
| Time Complexity: ? | ||
| Space Complexity: ? | ||
| Time Complexity: O(N+E) | ||
| Space Complexity: O(N) |
There was a problem hiding this comment.
✨ Your time and space complexity are correct for a BFS implementation
| colorArr = [-1] * self.V | ||
|
|
||
| # Assign first color to source | ||
| colorArr[dislikes] = 1 |
There was a problem hiding this comment.
Again, dislikes is an adjacency list - a list of lists - so you're trying to index an array with a list here.
|
|
||
| # Run while there are vertices in queue | ||
| # (Similar to BFS) | ||
| while queue: |
There was a problem hiding this comment.
Your approach looks largely correct for an adjacency matrix, but I may be missing something without the tests
| self.V = V | ||
| self.graph = [[0 for column in range(V)] \ | ||
| for row in range(V)] |
There was a problem hiding this comment.
🤔 It looks like you're creating a graph here as an adjacency matrix with no edges initially.
No description provided.