diff --git a/MinMaxFinder.java b/MinMaxFinder.java new file mode 100644 index 00000000..b5a986fc --- /dev/null +++ b/MinMaxFinder.java @@ -0,0 +1,46 @@ +import java.util.ArrayList; +import java.util.Arrays; + +public class MinMaxFinder { + public static void findMinMax(ArrayList arr, ArrayList result) { + int n = arr.size(); + int mini, maxi, i; + + // Initialize min and max + if (n % 2 == 1) { + mini = maxi = arr.get(0); + i = 1; + } else { + if (arr.get(0) < arr.get(1)) { + mini = arr.get(0); + maxi = arr.get(1); + } else { + mini = arr.get(1); + maxi = arr.get(0); + } + i = 2; + } + + // Process elements in pairs + while (i < n - 1) { + if (arr.get(i) < arr.get(i + 1)) { + mini = Math.min(mini, arr.get(i)); + maxi = Math.max(maxi, arr.get(i + 1)); + } else { + mini = Math.min(mini, arr.get(i + 1)); + maxi = Math.max(maxi, arr.get(i)); + } + i += 2; + } + + result.add(mini); + result.add(maxi); + } + + public static void main(String[] args) { + ArrayList arr = new ArrayList<>(Arrays.asList(3, 5, 4, 1, 9)); + ArrayList result = new ArrayList<>(); + findMinMax(arr, result); + System.out.println(result.get(0) + " " + result.get(1)); + } +} \ No newline at end of file diff --git a/Problem1.java b/Problem1.java new file mode 100644 index 00000000..ab406611 --- /dev/null +++ b/Problem1.java @@ -0,0 +1,28 @@ +import java.util.ArrayList; +import java.util.List; + +class Solution { + public List findDisappearedNumbers(int[] nums) { + List li = new ArrayList<>(); + int n=nums.length; + for(int i=0;i0){ + nums[idx]=nums[idx]*-1; + } + } + for(int i=0;i0){ + li.add(i+1); + } + //marking negative values back to positive + else{ + nums[i]=nums[i]*-1; + } + + } + return li; + } +} \ No newline at end of file diff --git a/Problem3.java b/Problem3.java new file mode 100644 index 00000000..7e2f6f9f --- /dev/null +++ b/Problem3.java @@ -0,0 +1,50 @@ +class Solution { + public void gameOfLife(int[][] board) { + int m=board.length; + int n=board[0].length; + + //first pass + for(int i=0;i0 maps to 2 + if(board[i][j]==1 && (count<2 || count>3)){ + board[i][j]=2; + } + //0-->1 maps to 3 + if(board[i][j]==0 && count==3 ){ + board[i][j]=3; + } + } + } + //second pass + for(int i=0;i=0 && nc>=0 && nr