题目:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

image.png
image.png

双指针

使用快慢指针,i 表示慢指针,而 j 表示快指针。j 正常遍历数组,而 i 当且仅当 nums[i] !== nums[j] 的时候才进行自增,并且将 nums[j] 赋值给 i 的后一位。

  1. function removeDuplicates(nums: number[]): number {
  2. if (nums.length === 0) {
  3. return 0
  4. }
  5. let i = 0;
  6. for (let j = 1; j < nums.length; j++) {
  7. if (nums[i] !== nums[j]) {
  8. i++
  9. nums[i] = nums[j]
  10. }
  11. }
  12. return i + 1
  13. };