C语言一位数组给定一个排好序的数组,去除数组中重复的元素,保证每个元素只出现一次
时间: 2024-01-10 17:03:58 浏览: 67
删除数组中的重复元素
可以使用双指针法,从数组的第二个元素开始遍历,如果当前元素与前一个元素相同,则将后一个指针向后移动一位,直到找到一个不同的元素,然后将这个不同的元素复制到前一个指针所指向的位置,最后将数组的长度修改为不同元素的个数。
以下是示例代码:
```c
int* removeDuplicates(int* nums, int numsSize, int* returnSize){
if (numsSize == 0) {
*returnSize = 0;
return NULL;
}
int i = 0, j = 1;
while (j < numsSize) {
if (nums[j] == nums[i]) {
j++;
} else {
i++;
nums[i] = nums[j];
j++;
}
}
*returnSize = i + 1;
return nums;
}
```
其中,参数 `nums` 是输入的数组,`numsSize` 是数组的长度,`returnSize` 是输出的不同元素的个数。函数返回值为一个指向修改后的数组的指针。
阅读全文