给定一个排好序的数组,去除数组中重复的元素。C语言
时间: 2024-03-02 08:48:40 浏览: 66
java去除已排序数组中的重复元素
5星 · 资源好评率100%
可以使用双指针法来解决这个问题,具体实现如下:
```c
int removeDuplicates(int* nums, int numsSize){
if (numsSize == 0) {
return 0;
}
int i = 0;
for (int j = 1; j < numsSize; j++) {
if (nums[j] != nums[i]) {
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
```
双指针法的思想是,用一个指针 i 指向当前不重复的元素的位置,用另一个指针 j 遍历整个数组。如果 nums[j] != nums[i],说明找到了一个新的不重复元素,将它放到 i 的下一个位置,并将 i 向右移动一位。最终返回 i+1 即为不重复元素的个数。
注意,这里的数组是已经排好序的。如果数组未排序,需要先进行排序操作。
阅读全文