-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathremove-duplicates-from-sorted-array
More file actions
25 lines (22 loc) · 1.05 KB
/
remove-duplicates-from-sorted-array
File metadata and controls
25 lines (22 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//Given a sorted array, remove the duplicates in-place such that each element appear only once and return the new length.
//Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
//Example: Given nums = [1,1,2], Your function should return length = 2, with the first two elements of nums
//being 1 and 2 respectively. It doesn't matter what you leave beyond the new length.
console.log('OutPut:', removeDuplicates([1,1,2]), 'Expected: 2')
console.log('OutPut:', removeDuplicates([1,1,1]), 'Expected: 1')
console.log('OutPut:', removeDuplicates([1,2,2,7,8,8,8,9,12,16,16,118]), 'Expected: 8')
function removeDuplicates(nums) {
var lastNumInArray;
var deleteIndexArray = [];
nums.forEach(function(num,index) {
if (lastNumInArray === num) {
deleteIndexArray.push(index);
} else {
lastNumInArray = num;
}
});
deleteIndexArray.reverse().forEach(function(arrayIndex) {
nums.splice(arrayIndex, 1);
});
return nums.length;
}