Skip to content

Commit 08d0d61

Browse files
committed
Remove duplicates in place: done
1 parent 7eca377 commit 08d0d61

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.leetcode.arrays;
2+
3+
import java.util.Arrays;
4+
5+
/**
6+
* Level: Easy
7+
* Problem Link: https://leetcode.com/problems/remove-duplicates-from-sorted-array/
8+
* Problem Description:
9+
* Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.
10+
* <p>
11+
* Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
12+
* Example 1:
13+
* <p>
14+
* Given nums = [1,1,2]
15+
* <p>
16+
* Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
17+
* <p>
18+
* It doesn't matter what you leave beyond the returned length.
19+
*
20+
* @author rampatra
21+
* @since 2019-04-24
22+
*/
23+
public class RemoveDuplicates {
24+
25+
/**
26+
* Time complexity: O(n)
27+
* where,
28+
* n = no. of elements in the array
29+
* <p>
30+
* Runtime: <a href="https://leetcode.com/submissions/detail/224719750/">1 ms</a>.
31+
*
32+
* @param nums
33+
* @return
34+
*/
35+
public static int removeDuplicatesInSortedArray(int[] nums) {
36+
int insertIndex = 0;
37+
38+
for (int i = 1; i < nums.length; i++) {
39+
if (nums[i] != nums[i - 1]) {
40+
nums[++insertIndex] = nums[i];
41+
}
42+
}
43+
44+
return insertIndex + 1;
45+
}
46+
47+
public static void main(String[] args) {
48+
int[] arr = new int[]{1, 1, 2};
49+
System.out.println(removeDuplicatesInSortedArray(arr));
50+
System.out.println(Arrays.toString(arr));
51+
52+
arr = new int[]{0, 0, 1, 1, 1, 2, 2, 3, 3, 4};
53+
System.out.println(removeDuplicatesInSortedArray(arr));
54+
System.out.println(Arrays.toString(arr));
55+
56+
arr = new int[]{0, 1, 2, 3, 4, 5};
57+
System.out.println(removeDuplicatesInSortedArray(arr));
58+
System.out.println(Arrays.toString(arr));
59+
}
60+
}

0 commit comments

Comments
 (0)