【计蒜客系列】挑战难题22:排序后的数组删除重复数字

来源:互联网 发布:网络解锁nck 编辑:程序博客网 时间:2024/05/01 08:42

题目来源:计蒜客

给定升序排序的数组,如果数组有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;}


0 0
原创粉丝点击