快慢指针操作原数组
注意数组变化了
slow=0,fast=1 如果相同,则fat++
不同,将fast的值赋值给slow+1(第一个移动是有的),slow++,fast++
注意数组已经变了
c
#include <stdio.h>
#include <string.h>
int main() {
int arr[]={1,2,2,3,3,3,4,4,5};
int count=sizeof(arr)/sizeof(arr[0]);
int slow=0;
int fast=1;
for(int i=0;i<count;i++)
{
if(count==2)
{
slow=2;
break;
}
if(arr[slow]==arr[fast])
{
fast++;
}else
{
arr[slow+1]=arr[fast];
slow++;
fast++;
}
}
for(int i=0;i<slow;i++)
{
printf("%d,",arr[i]);
}
}