简单的算法问题14——排序后的数组删除重复数字

简单的算法问题14——排序后的数组删除重复数字

  • 所有算法均是用C++编写
  • 所有题目均是来自计蒜客

题目

给定升序排序的数组,如果数组有2个或者2个以上相同的数字,去掉他们,直到剩下2个为止。 
例如:
数组 A[]=[1,1,1,2,2,3] 你的算法需要返回新数组的长度5, 此时A为[1,1,2,2,3]。

输入格式

第一行输入一个不超过200的数字n,第二行输入A[n]。


输出格式

输出新数组的长度。


样例输入

6
1 1 1 1 3 3


样例输出

4


刨坑点

  1. 这道题我并没真正的删除重复度大于2的数字,而只是将array.size() 重复度大于2的--

代码

#include<iostream>
#include<vector>
typedef struct SeqList{
    int flag;
    int num;
}SeqList;

using namespace std;
int main(){
    int n,temp=0;
    cin>>n;
    vector <SeqList> array(n);
    for(int i=0;i<n;i++){
        cin>>array[i].num;
        array[i].flag=0;
    }
    for(int i=0;i<n;i++){
        temp=array[i].num;
        for(int j=i+1;j<n;j++){
            if(temp==array[j].num){
                array[j].flag++;
            }
        }
    }
    int length=array.size();
    for(int i=0;i<n;i++){
        if(array[i].flag>1){
            length--;
        }
    }
    cout<<length;
    return 0;
}

结果

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/XiaoyYidiaodiao/article/details/81565474