您的位置:首页 > 其它

【计蒜客系列】挑战难题11:移除数组中重复元素

2015-07-14 10:40 302 查看
题目来源:计蒜客

给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度。

例如:

   数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2}

要求:

   不能新开数组分配额外的空间。即常数空间限制。

提示:

   输入一个整数n,以及其对应的数组A
,输出新数组长度

样例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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计蒜客