Skip to content

Commit dc1e733

Browse files
authored
Create 0080-remove-duplicates-from-sorted-array-ii.js
Solved remove-duplicates-from-sorted-array-ii in JS
1 parent 914ca1f commit dc1e733

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+
/**
2+
* Linear
3+
* https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/
4+
* Time O(n) | Space O(1)
5+
* @param {number[]} nums
6+
* @return {number}
7+
*/
8+
var removeDuplicates = function(nums) {
9+
let current = nums[0];
10+
let sameElCount = 0;
11+
12+
for(let i = 0; i < nums.length; i++) {
13+
if(current === nums[i]) {
14+
sameElCount++;
15+
}
16+
if(current !== nums[i]) {
17+
current = nums[i];
18+
sameElCount = 1;
19+
}
20+
if(sameElCount > 2) {
21+
nums.splice(i,1);
22+
i--;
23+
}
24+
}
25+
};
26+
27+
/**
28+
* Two pointer
29+
* Time O(n) | Space O(1)
30+
* @param {number[]} nums
31+
* @return {number}
32+
*/
33+
var removeDuplicates2 = function(nums) {
34+
35+
let current = nums[0];
36+
let sameElCount = 0;
37+
38+
39+
for(let i = 0; i < nums.length; i++) {
40+
if(current === nums[i]) {
41+
sameElCount++;
42+
}
43+
if(current !== nums[i]) {
44+
current = nums[i];
45+
sameElCount = 1;
46+
}
47+
if(sameElCount > 2) {
48+
let left = i;
49+
let right = i+1;
50+
let count = 1;
51+
while(nums[left] === nums[right]) {
52+
count++;
53+
right++;
54+
}
55+
nums.splice(left, count);
56+
i--;
57+
}
58+
}
59+
return nums.length;
60+
};

0 commit comments

Comments
 (0)