PAT甲级-散列类型-1041 Be Unique解题思路

1041 Be Unique (20 分)

在这里插入图片描述

思路

用一个哈希表记录出现次数,数字和字符都可以用哈希表呀~
不然两个循环遍历会超时~

代码

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int N;
    cin>>N;

    int num[100005];
    int boolnum[100005]={0};
    for (int i =0;i<N;i++)
        cin>>num[i];
    
    for (int i =0;i<N;i++)
        boolnum[num[i]]+=1;

    for (int i =0;i<N;i++)
        if(boolnum[num[i]]==1)
         {   cout<<num[i]<<endl;
            return 0;
         }
    cout<<"None"<<endl;
}

超时代码

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int N;
    cin>>N;

    int num[100005];
    for (int i =0;i<N;i++)
        cin>>num[i];
    
    for (int i =0;i<N;i++)
    {
        int flag = 1;
        int num1 = num[i];
        for(int j=0;j<N;j++)
        {
            if(i==j)continue;
            int num2 = num[j];
            if(num1 ==num2)flag = 0;
        }
        if(flag){cout<<num[i]<<endl;
        return 0;}
    }
    cout<<"None"<<endl;
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页