From 3a464a48a05bd9e3d11f9a5c7f839abe58acf783 Mon Sep 17 00:00:00 2001 From: mukul Date: Fri, 9 Jan 2026 22:00:05 +0530 Subject: [PATCH] Done with Two-Pointers-1 --- Problem1.java | 32 ++++++++++++++++++++++++++++++++ Problem2.java | 38 ++++++++++++++++++++++++++++++++++++++ Problem3.java | 21 +++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 Problem1.java create mode 100644 Problem2.java create mode 100644 Problem3.java diff --git a/Problem1.java b/Problem1.java new file mode 100644 index 00000000..50152f19 --- /dev/null +++ b/Problem1.java @@ -0,0 +1,32 @@ +class Solution { + public void sortColors(int[] nums) { + int n= nums.length; + int left=0; + int mid=0; + int right=n-1; + while(mid<=right){ + //move 2 towards right side using mid pointer + if(nums[mid]==2){ + swapColors(nums, mid, right); + right--; + } + //move 0 towards left side using mid pointer + else if(nums[mid]==0){ + swapColors(nums, mid, left); + mid++; left++; + } + else{ // for nums[mid]==1, contains 1's in middle + mid++; + } + + } + + } + + private void swapColors(int[] nums, int mid, int idx){ + int temp=nums[idx]; + nums[idx]=nums[mid]; + nums[mid]=temp; + + } +} \ No newline at end of file diff --git a/Problem2.java b/Problem2.java new file mode 100644 index 00000000..196934ea --- /dev/null +++ b/Problem2.java @@ -0,0 +1,38 @@ +import java.util.*; + +class Solution { + public List> threeSum(int[] nums) { + int n= nums.length; + if(nums== null || nums.length<3) return new ArrayList<>(); + List> result = new ArrayList<>(); + Arrays.sort(nums); + for(int i=0;i0) break; + //for external duplicacy + if(i>0 && nums[i]==nums[i-1]) continue; + int l=i+1; int r=n-1; + while(l li= Arrays.asList(nums[i],nums[l],nums[r]); + result.add(li); + l++; + r--; + //for internal duplicacy check + while(l0){ + r--; + } + else{ + l++; + } + } + } + return result; + + } +} \ No newline at end of file diff --git a/Problem3.java b/Problem3.java new file mode 100644 index 00000000..426fb54c --- /dev/null +++ b/Problem3.java @@ -0,0 +1,21 @@ +class Solution { + public int maxArea(int[] height) { + int n=height.length; + int max=0; + int l=0; //where l is left pointer + int r=n-1; //where r is right pointer + while(l