原题链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/
目录
1. 题目描述
2. 思路分析
3. 代码实现
1. 题目描述
2. 思路分析
用双指针算法,定义两个变量src和dst,一开始让src和dst指向num[ ]数组的第一个元素,再使用if语句判断。
如果nums[src]==nums[dst],就让src指向下一位,即src++。如果nums[src]!=nums[dst]就让dst指向下一位,即dst++,再将src的值赋给nums[dst],赋完值后让src指向下一位,即src++。
最后dst+1就是数组中元素的个数。
流程演示:
3. 代码实现
int removeDuplicates(int* nums, int numsSize) {int n = numsSize;int src = 0, dst = 0;while (src < n){if (nums[src] == nums[dst])src++;else{dst++;nums[dst] = nums[src];src++;}}return dst + 1;
}