diff --git a/MergeArrays.java b/MergeArrays.java new file mode 100644 index 00000000..3ddf01ff --- /dev/null +++ b/MergeArrays.java @@ -0,0 +1,26 @@ +class Solution { + public void merge(int[] nums1, int m, int[] nums2, int n) { + int p1 = m-1, p2 = n-1; + int idx = m+n-1; + + while(p1 >= 0 && p2 >=0){ + if(nums2[p2] > nums1[p1]){ + nums1[idx] = nums2[p2]; + p2--; + }else{ + nums1[idx] = nums1[p1]; + p1--; + } + idx--; + } + + while(p2 >= 0){ + nums1[idx] = nums2[p2]; + p2--; + idx--; + } + } +} + +Time complexity : O(m + n) +space complexity : O(1) \ No newline at end of file diff --git a/RemoveDuplicates.java b/RemoveDuplicates.java new file mode 100644 index 00000000..f50e8778 --- /dev/null +++ b/RemoveDuplicates.java @@ -0,0 +1,22 @@ +class Solution { + public int removeDuplicates(int[] nums) { + + int k = 2; + int slow = k, fast = k; + + while(fast < nums.length){ + + if(nums[slow - k] != nums[fast]){ + nums[slow] = nums[fast]; + slow++; + } + + fast++; + } + + return slow; + } +} + +Time complexity : O(n) +space complexity : O(1) \ No newline at end of file diff --git a/SearchMatrix.java b/SearchMatrix.java new file mode 100644 index 00000000..4d6ed84b --- /dev/null +++ b/SearchMatrix.java @@ -0,0 +1,19 @@ +class Solution { + public boolean searchMatrix(int[][] matrix, int target) { + int m = matrix.length; + int n = matrix[0].length; + + int r = 0, c = n - 1; + + while(r < m && c >= 0){ + if(matrix[r][c] == target) return true; + else if(matrix[r][c] > target) c--; + else r++; + } + + return false; + } +} + +Time complexity : O(m + n) +space complexity : O(1) \ No newline at end of file