给定升序排序的数组,如果数组有2个或2个以上相同的数字,去掉他们,直到剩下2个为止。
例如:
数组A[] = [1,1,1,2,2,3]
你的算法需要返回新数组的长度5,
此时A为[1,1,2,2,3].
格式:第一行输入一个数字n,第二行输入A[n],
最后输出新数组的长度。
样例1
输入:
6
1 1 1 1 3 3
输出:
4
#include <stdio.h>
#include <malloc.h>
int calcLength(int a[],int n)
{
int i;
int count = n;
for(i = 1;i < n-1;i++)
{
if(a[i-1] == a[i] && a[i+1] == a[i])
{
count--;
}
}
return count;
}
int main(int argc, char **argv) {
int i, n;
scanf("%d", &n);
int *a = (int *) malloc(n * sizeof(int));
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int len = calcLength(a,n);
printf("%d",len);
return 0;
}