问题标题: 酷町堂:求大神求解酷町堂1066 去重,谢谢!(求思路~)

2
0
已解决
王梓澳
王梓澳
中级光能
中级光能

题目:

1066   去重

题目描述 Description

一整型序列,可能存在相同的元素,请去掉重复的元素且只保留一个,输出经过去重的序列。若没有重复的元素,则输出原序列。

输入描述 Input Description

输入为两行:
第一行包含一个整数N,为序列的长度(N≤100);
第二行为N个整数(0~10000)。

输出描述 Output Description

若有重复的元素,输出去重后的序列,否则,输出原序列。

样例输入 Sample Input

 

10
1 2 3 1 2 3 4 5 6 10

样例输出 Sample Output

 

1 2 3 4 5 6 10

数据来源 Source

酷町堂原创

题目网址:1066 去重


1
已采纳
陆麟瑞
陆麟瑞
资深天翼
资深天翼

一个桶,速度超快。比楼上那些程序要好。

for(int i=0; i<n; i++)
     if(c[a[i]]==true)
     {
        c[a[i]]=false;
        cout<<a[i]<<' ';
     }
bool c[10001];从要定义成布尔型。
3
蒋智航
蒋智航
高级天翼
高级天翼

for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
            if(a[i]==a[j])
                a[j]=-1;
    for(int i=0;i<n;i++)
        if(a[i]!=-1)
 

0
0
周天睿
周天睿
初级光能
初级光能
    for(int i=0;i<=n;i++)
        cin>>a[i];
    for(int i=0;i<n-1;i++)
        for(int j=i+1;j<=n;j++)
            if(a[i]==a[j])
            a[j]=-1;
            for(int i=0;i<n;i++)
            if(a[i]!=-1)

以上是核心代码

0
黄俊博
黄俊博
资深光能
资深光能
直接用桶排序,挺方便的。
for(int i=0;i<n-1;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(a[i]==a[j])
            {
                a[j]=-1;
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        if(a[i]!=-1)
            cout<<a[i]<<" ";
    }
0
0
被禁言 鲍纪元
鲍纪元
高级守护
高级守护
bool s[10100];
int a[10100];
int main()
{
int n,i,j;  
cin>>n;
    memset(s,true,sizeof (s));
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;i<=n;i++)
    {
    if(s[i])
    for(int j=i+1;j<=n;j++)
    if(a[i]==a[j]) s[j]=false;
    }
    for(i=1;i<=n;i++)
    if(s[i]==true) cout<<a[i]<<" ";
0
臧启亚
臧启亚
初级光能
初级光能

核心部分:

for(int i=1;i<=n-1;i++)
    for(int j=i+1;j<=n;j++)
       if(a[i]==a[j])  {
           a[j]=-1;
    }
    for(int i=1;i<=n;i++) {
        if(a[i]!=-1)
            cout<<a[i]<<" ";
    }

 

0
张睿杰
张睿杰
初级天翼
初级天翼
定义n,c[101],bz=0;
输入n
    for(int i=0;i<=n-1;i++) cin>>a[i];
    for(int i=0;i<=n-1;i++)
    {
//      cout<<i<<endl;
        c[i]=a[i];
        for(int j=0;j<=i-1;j++)
        {
            if(c[j]==a[i])
            {
                bz=1;
                break;
            }
        }
        if(bz==1) bz=0;
        else cout<<a[i]<<' ';
    }

 

0
0
朱宗晔
朱宗晔
初级光能
初级光能

核心部分

for(b=0;b<=a-1;b++){
        d=0;
        for(int i=b-1;i>=0;i--){
        if(c[i]==c[b]) d++;
        }
        if(d==0) cout<<c[b]<<" ";
    }

 

我要回答