删除有序数组内的重复元素,输出不含重复元素的个数。
初始化数组:1,3,5,5,6,6,6,9,9,10
程序运行结果:
实现代码:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
/* 快慢指针遍历 */
int count(int arr[], int len)
{
//快指针j,慢指针i
int i = 0, j;
for(j = 1; j < len; j++)
{
if(arr[i] != arr[j])
{
i++;
arr[i] = arr[j];
}
}
return i+1;
}
int main()
{
int arr[] = {1,3,5,5,6,6,6,9,9,10};
int len = sizeof(arr)/sizeof(arr[0]);
//计算不重复元素个数,输出
int ret = count(arr, len);
printf("> %d\n",ret);
return 0;
}