计蒜客第22题---排序后的数组删除重复数字

来源:互联网 发布:防水纹身贴淘宝 编辑:程序博客网 时间:2024/05/14 07:50

给定升序排序的数组,如果数组有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 <iostream>using namespace std;int sortRemove(int n, int A[]){    int k = 0;//超过2的次数    int num = 1;//记录每个元素出现的次数    for (int j = 0; j<n; j++)    {        if (A[j] == A[j + 1])            num++;        else            num = 1;        if (num>2)            k++;    }    return n - k;}int main(){    int n, m, result;    cin >> n;    int *A = new int[n];    for (int i = 0; i<n; i++)    {        cin >> m;        A[i] = m;    }    result = sortRemove(n, A);    cout << result << endl;    delete [ ]A;    return 0;}
0 0
原创粉丝点击