1# Runtime: 997 ms (Top 62.25%) | Memory: 22.2 MB (Top 22.99%)2class Solution:3def possibleBipartition(self, n: int, dislikes: List[List[int]]) -> bool:4def dfs(i, c):5if color[i] != 0:6if color[i] != c:7return False8return True910color[i] = c11for u in e[i]:12if not dfs(u, 3 - c):13return False14return True1516e = [[] for _ in range(n)]17for u, v in dislikes:18u -= 119v -= 120e[u].append(v)21e[v].append(u)22color = [0] * n23for i in range(n):24if color[i] == 0:25if not dfs(i, 1):26return False27return True