給定一個升序排列的數組,去掉重複的數,並返回新的數組的長度。
例如:
數組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);
}