From 892456b035cf1bfac012401967fa7e0f0bf20518 Mon Sep 17 00:00:00 2001 From: Adithya Vinayak Date: Sat, 21 Feb 2026 21:49:53 -0500 Subject: [PATCH] working solution for all 3 problems --- problem1.py | 13 +++++++++++++ problem2.py | 27 +++++++++++++++++++++++++++ problem3.py | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 problem1.py create mode 100644 problem2.py create mode 100644 problem3.py diff --git a/problem1.py b/problem1.py new file mode 100644 index 00000000..08f52b49 --- /dev/null +++ b/problem1.py @@ -0,0 +1,13 @@ +# problem1 + +class Solution: + def findDisappearedNumbers(self, nums: List[int]) -> List[int]: + final_arr = [] + for num in nums: + idx = abs(num)-1 + if nums[idx] > 0: + nums[idx]= nums[idx]*(-1) + for i in range(len(nums)): + if nums[i] > 0: + final_arr.append(i+1) + return final_arr \ No newline at end of file diff --git a/problem2.py b/problem2.py new file mode 100644 index 00000000..d13e9c89 --- /dev/null +++ b/problem2.py @@ -0,0 +1,27 @@ +# problem 2 +class Problem2: + def findMinAndMax(self, nums): + n = len(nums) + i = 0 + if n%2 == 0: + if nums[i] < nums[i+1]: + min_val = nums[i] + max_val = nums[i+1] + else: + min_val = nums[i+1] + max_val = nums[i] + i = 2 + else: + min_val = nums[i] + max_val = nums[i] + i = 1 + + while i < n-1: + if nums[i] < nums[i+1]: + min_val = min(min_val,num[i]) + max_val = max(max_val,num[i+1]) + else: + min_val = min(min_val,num[i+1]) + max_val = max(max_val,num[i]) + i+=2 + return [min_val,max_val] \ No newline at end of file diff --git a/problem3.py b/problem3.py new file mode 100644 index 00000000..4adcc2fb --- /dev/null +++ b/problem3.py @@ -0,0 +1,34 @@ +# problem 3 + +class Solution: + def gameOfLife(self, board: List[List[int]]) -> None: + """ + Do not return anything, modify board in-place instead. + """ + possible_match = [(-1,-1),(-1,0),(-1,1),(0,-1),(0,1),(1,-1),(1,0),(1,1)] + m = len(board) + n = len(board[0]) + def getCount(i,j): + count = 0 + for r_val,c_val in possible_match: + r = i+r_val + c = j+c_val + if 0 <= r < m and 0 <= c < n: + if board[r][c] == 1 or board[r][c] == 2: + count+=1 + return count + + for i in range(m): + for j in range(n): + count = getCount(i, j) + if board[i][j] == 0 and count == 3: + board[i][j] = 3 + elif board[i][j] == 1 and (count < 2 or count > 3): + board[i][j] = 2 + + for i in range(m): + for j in range(n): + if board[i][j] == 3: + board[i][j] = 1 + elif board[i][j] == 2: + board[i][j] = 0 \ No newline at end of file