Skip to content

移除重复元素 / removeDuplicates

题目描述

从有序数组中原地删除重复的元素。

Code

javascript
function removeDuplicates(nums) {
  if (nums.length === 0) return 0;
  let slow = 0,
    fast = 0;
  while (fast < nums.length) {
    if (nums[fast] !== nums[slow]) {
      slow++;
      nums[slow] = nums[fast];
    }
    fast++;
  }
  return slow + 1;
}

Test Cases

javascript
const { removeDuplicates } = require('../docs/algo/array/removeDuplicates');

describe('removeDuplicates', () => {
  it('case1', () => {
    const nums = [1, 2, 3, 3, 3, 3, 4, 5];
    const expectResult = [1, 2, 3, 4, 5];
    const len = removeDuplicates(nums, 3);
    expect(len === expectResult.length);
    for (let i = 0; i < len; i++) {
      expect(nums[i] === expectResult[i]);
    }
  });
});