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

来源:互联网 发布:成都青年旅舍 知乎 编辑:程序博客网 时间:2024/06/11 07:35

题目来源:计蒜客


给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度。
例如:
   数组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);}


1 0
原创粉丝点击