Computer >> Máy Tính >  >> Lập trình >> Javascript

Xóa các bản sao khỏi một mảng ký tự được sắp xếp trong JavaScript

Giả sử chúng ta được cung cấp một mảng các ký tự đã được sắp xếp. Chúng tôi được yêu cầu viết một hàm loại bỏ tất cả các phần tử trùng lặp khỏi mảng sao cho mỗi phần tử chỉ xuất hiện một lần và trả về độ dài mới của mảng.

Điều kiện để thực hiện việc này là chúng ta không thể cấp thêm không gian cho một mảng khác, chúng ta phải thực hiện việc này bằng cách sửa đổi mảng đầu vào ở chỗ có bộ nhớ phụ O (1).

Ví dụ

Mã cho điều này sẽ là -

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);

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[
   1, 3, 6, 7,
   9, 11, 13
]