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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43999137/article/details/114297450