From 8707f40eb99d16fef0a1e3e4be13948f1e8a42f6 Mon Sep 17 00:00:00 2001 From: pratikb0501 Date: Sat, 6 Jun 2026 12:29:12 -0700 Subject: [PATCH] Completed Graph-1 --- Problem_1.py | 12 ++++++++++++ Problem_2.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 Problem_1.py create mode 100644 Problem_2.py diff --git a/Problem_1.py b/Problem_1.py new file mode 100644 index 0000000..9ebc40b --- /dev/null +++ b/Problem_1.py @@ -0,0 +1,12 @@ +class Solution: + def findJudge(self, n, trust): + indegree = [0] * n + for t in trust: + a = t[0] + b = t[1] + indegree[a - 1] -= 1 + indegree[b - 1] += 1 + for i in range(n): + if indegree[i] == n - 1: + return i + 1 + return -1 diff --git a/Problem_2.py b/Problem_2.py new file mode 100644 index 0000000..815e6aa --- /dev/null +++ b/Problem_2.py @@ -0,0 +1,48 @@ +# class Solution: +# def hasPath( +# self, maze, start, destination): +# directions = [[1, 0], [-1, 0], [0, 1], [0, -1]] +# return self.dfs( +# start[0], start[1], destination[0], destination[1], maze, directions +# ) + +# def dfs(self, cr, cc, dr, dc, maze, directions): +# if cr == dr and cc == dc: +# return True +# if maze[cr][cc] == 2: +# return False +# maze[cr][cc] = 2 +# for r, c in directions: +# nr, nc = cr + r, cc + c +# while 0 <= nr < len(maze) and 0 <= nc < len(maze[0]) and maze[nr][nc] != 1: +# nr, nc = nr + r, nc + c +# nr, nc = nr - r, nc - c +# if self.dfs(nr, nc, dr, dc, maze, directions): +# return True +# return False + + +from collections import deque + + +class Solution: + def hasPath( + self, maze,start, destination): + directions = [[1, 0], [-1, 0], [0, 1], [0, -1]] + q = deque([start]) + while q: + curr = q.popleft() + cr, cc = curr[0], curr[1] + if cr == destination[0] and cc == destination[1]: + return True + maze[cr][cc] = 2 + for r, c in directions: + nr, nc = cr + r, cc + c + while ( + 0 <= nr < len(maze) and 0 <= nc < len(maze[0]) and maze[nr][nc] != 1 + ): + nr, nc = nr + r, nc + c + nr, nc = nr - r, nc - c + if maze[nr][nc] != 2: + q.append([nr, nc]) + return False