给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度。
例如:
数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2}
要求:
不能新开数组分配额外的空间。即常数空间限制。
提示:
输入一个整数n,以及其对应的数组A[n],输出新数组长度
样例1
输入:
5
0 0 1 1 2
输出:
3
#include<stdio.h>
#include<malloc.h>
int newLength(int A[],int n){
int newlen = 1;
int i ;
for(i=1;i<n;i++)
{
if(A[i] == A[i-1])
{
continue;
}else{
A[newlen] = A[i];
newlen++;
}
}
return newlen;
}
int main(int argc, char **argv) {
int n ,i;
int *A = (int *)malloc(n*sizeof(int));
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&A[i]);
}
int newlen = newLength(A,n);
printf("%d",newlen);
}