Cho mảng đã sắp xếp. Viết hàm xóa trùng lặp in-place, mỗi phần tử chỉ xuất hiện một lần, trả về độ dài mới. Không cấp phát mảng mới, O(1) bộ nhớ thêm.
Ví dụ
const arr = [1, 3, 3, 6, 7, 7, 9, 11, 13];
const removeDuplicates = (arr = []) => {
let i=0;
while(i < arr.length - 1){
let j = i + 1;
if(arr[i] === arr[j]){
arr.splice(j,1);
} else {
i++;
}
};
};
removeDuplicates(arr);
console.log(arr);Kết quả
Kết quả in ra console:
[ 1, 3, 6, 7, 9, 11, 13 ]