diff --git a/Problem1.java b/Problem1.java new file mode 100644 index 00000000..d1da3d3f --- /dev/null +++ b/Problem1.java @@ -0,0 +1,24 @@ +class Problem1 { + public void sortColors(int[] nums) { + int low = 0, high = nums.length-1, mid = 0; + + while(mid <= high){ + if(nums[mid] == 2){ + swap(nums, mid, high); + high--; + }else if(nums[mid] == 0){ + swap(nums, mid, low); + low++; + mid++; + }else{ + mid++; + } + } + } + + private void swap(int[] nums, int x, int y){ + int temp = nums[x]; + nums[x] = nums[y]; + nums[y] = temp; + } +} diff --git a/Problem2.java b/Problem2.java new file mode 100644 index 00000000..f8a1236e --- /dev/null +++ b/Problem2.java @@ -0,0 +1,40 @@ +class Problem2 { + public List> threeSum(int[] nums) { + Arrays.sort(nums); + int n = nums.length; + int target = 0; + List> result = new ArrayList<>(); + for(int i=0; i triplet = Arrays.asList(nums[i], nums[j], nums[idx]); + result.add(triplet); + } + } + } + + return result; + } + + private int binarySearch(int[] nums, int low, int high, int target){ + + while(low <= high){ + int mid = low + (high - low)/2; + if(nums[mid] == target) return mid; + else if(nums[mid] > target) high = mid - 1; + else low = mid + 1; + } + + return -1; + } +} diff --git a/Problem3.java b/Problem3.java new file mode 100644 index 00000000..ad14b8e4 --- /dev/null +++ b/Problem3.java @@ -0,0 +1,25 @@ +class Problem3 { + public int maxArea(int[] height) { + int n = height.length; + + int low = 0, high = n-1; + int area = 0; + + while(low < high){ + int h = 0; + int w = high - low; + + if(height[low] < height[high]){ + h = height[low]; + low++; + }else{ + h = height[high]; + high--; + } + + area = Math.max(area, h*w); + } + + return area; + } +}