https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 数组、双指针

基础

简单,但是性能不好

  1. function removeDuplicates(nums: number[]): number {
  2. let len = nums.length
  3. let key: number = Infinity
  4. for (let i = 0; i < len; i++) {
  5. if (nums[i] === key) {
  6. nums.splice(i, 1)
  7. len--
  8. i--
  9. } else {
  10. key = nums[i]
  11. }
  12. }
  13. return len
  14. };

双指针

双指针,性能较好

function removeDuplicates(nums: number[]): number {
    const len = nums.length;
    let i = 0;
    for(let j = i + 1; j < nums.length; j++) {
        if (nums[i] !== nums[j]) {
            i++;
            nums[i] = nums[j];
        }
    }
    return i + 1;
};