From c659f521dd4f4e60d9fdfd545ab063509a2edb9b Mon Sep 17 00:00:00 2001 From: Simranb10 Date: Mon, 1 Jun 2026 00:12:36 -0400 Subject: [PATCH] Array-2 solution --- FindDisappearedNumbers.java | 29 ++++++++++++++++++++++++++ GameOfLife.java | 41 +++++++++++++++++++++++++++++++++++++ GetMinMax.java | 40 ++++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 FindDisappearedNumbers.java create mode 100644 GameOfLife.java create mode 100644 GetMinMax.java diff --git a/FindDisappearedNumbers.java b/FindDisappearedNumbers.java new file mode 100644 index 00000000..6bb50df0 --- /dev/null +++ b/FindDisappearedNumbers.java @@ -0,0 +1,29 @@ +//Time Complexity : O(n) +//Space Complexity : O(1) + +import java.util.ArrayList; +import java.util.List; + +public class FindDisappearedNumbers { + List result; + public List findDisappearedNumbers(int[] nums) { + int n = nums.length; + result = new ArrayList<>(); + + for(int i = 0; i < n; i++) { + int index = Math.abs(nums[i]) - 1; + if(nums[index] > 0) { + nums[index] *= -1; + } + } + + for(int i = 0; i < n; i++) { + if (nums[i] < 0) { + nums[i] *= -1; + } else { + result.add(i + 1); + } + } + return result; + } +} diff --git a/GameOfLife.java b/GameOfLife.java new file mode 100644 index 00000000..8fa35cbf --- /dev/null +++ b/GameOfLife.java @@ -0,0 +1,41 @@ +//Time Complexity : O(m*n) +//Space Complexity : O(1) + +public class GameOfLife { + public void gameOfLife(int[][] board) { + int m = board.length; + int n = board[0].length; + int[][] dirs = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}, {-1, -1}, {-1, 1}, {1, -1}, {1, 1}}; + for(int r = 0; r < m; r++) { + for (int c = 0; c < n; c++) { + int live = 0; + + for(int[] dir: dirs) { + int nrow = r + dir[0]; + int ncol = c + dir[1]; + if(nrow >= 0 && ncol >=0 && nrow < m && ncol < n && (board[nrow][ncol] == 2 || board[nrow][ncol] == 1)) { + live++; + } + } + + // 2 : live -> dead + // 3 : dead -> live + if(board[r][c] == 1 && (live < 2 || live > 3)) { + board[r][c] = 2; + } else if (board[r][c] == 0 && live == 3) { + board[r][c] = 3; + } + + } + } + for(int r = 0; r < m; r++) { + for (int c = 0; c < n; c++) { + if(board[r][c] == 2) + board[r][c] = 0; + else if (board[r][c] == 3) + board[r][c] = 1; + } + } + + } +} diff --git a/GetMinMax.java b/GetMinMax.java new file mode 100644 index 00000000..983d32ca --- /dev/null +++ b/GetMinMax.java @@ -0,0 +1,40 @@ +//Time Complexity : O(n) +//Space Complexity : O(1) + +import java.util.ArrayList; +import java.util.List; + +public class GetMinMax { + public ArrayList getMinMax(int[] arr) { + int n = arr.length; + int min, max; + int i; + + if (n % 2 == 0) { + if (arr[0] < arr[1]) { + min = arr[0]; + max = arr[1]; + } else { + min = arr[1]; + max = arr[0]; + } + i = 2; + } else { + min = max = arr[0]; + i = 1; + } + + while (i < n - 1) { + if (arr[i] < arr[i + 1]) { + min = Math.min(min, arr[i]); + max = Math.max(max, arr[i + 1]); + } else { + min = Math.min(min, arr[i + 1]); + max = Math.max(max, arr[i]); + } + i += 2; + } + + return new ArrayList<>(List.of(min, max)); + } +}