From 9fc0d9e3fe31feeede6b68ffc8df00e20f64db5f Mon Sep 17 00:00:00 2001 From: Adithya Vinayak Date: Sun, 8 Mar 2026 00:47:23 -0500 Subject: [PATCH] working solution --- problem1.py | 35 +++++++++++++++++++++++++++++++++++ problem2.py | 25 +++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 problem1.py create mode 100644 problem2.py diff --git a/problem1.py b/problem1.py new file mode 100644 index 0000000..1936add --- /dev/null +++ b/problem1.py @@ -0,0 +1,35 @@ +# problem 1 + +class Solution: + def orangesRotting(self, grid: List[List[int]]) -> int: + my_queue = [] + m = len(grid) + n = len(grid[0]) + good_count = 0 + day_count = 0 + for i in range(m): + for j in range(n): + if grid[i][j] == 2: + my_queue.append((i,j)) + if grid[i][j] == 1: + good_count +=1 + if good_count == 0: + return 0 + while(my_queue): + curr_length = len(my_queue) + day_count+=1 + for i in range(curr_length): + curr_index = my_queue.pop(0) + all_direction = [[0,-1],[-1,0],[0,1],[1,0]] + for idx in all_direction: + r = idx[0] + curr_index[0] + c = idx[1] + curr_index[1] + if r >= 0 and r < m and c >= 0 and c < n: + if grid[r][c] == 1: + grid[r][c] = 2 + my_queue.append((r,c)) + good_count-=1 + if good_count == 0: + return day_count + return -1 + diff --git a/problem2.py b/problem2.py new file mode 100644 index 0000000..c2d32c2 --- /dev/null +++ b/problem2.py @@ -0,0 +1,25 @@ +# problem 2 +""" +# Definition for Employee. +class Employee: + def __init__(self, id: int, importance: int, subordinates: List[int]): + self.id = id + self.importance = importance + self.subordinates = subordinates +""" + +class Solution: + def getImportance(self, employees: List['Employee'], id: int) -> int: + my_dict = {} + for empl in employees: + my_dict[empl.id] = empl + my_queue = deque() + my_queue.append(my_dict[id]) + count = 0 + while my_queue: + curr_empl = my_queue.popleft() + count += curr_empl.importance + for sub_empl in curr_empl.subordinates: + my_queue.append(my_dict[sub_empl]) + return count +