zoukankan      html  css  js  c++  java
  • AcWing 3761.唯一最小数

    链接:https://www.acwing.com/problem/content/description/3764/
    题目:
    给定一个长度为 n 的整数数组 a1,a2,…,an。

    请你找到数组中只出现过一次的数当中最小的那个数。

    输出找到的数的索引编号。

    a1 的索引编号为 1,a2 的索引编号为 2,…,an 的索引编号为 n。

    输入格式
    第一行包含整数 T,表示共有 T 组测试数据。

    每组数据第一行包含整数 n。

    第二行包含 n 个整数 a1,a2,…,an。

    输出格式
    每组数据输出一行结果,即满足条件的数的索引编号,如果不存在满足条件的数,则输出 −1。

    数据范围
    1≤T≤2×104,
    1≤n≤2×105,
    1≤ai≤n,
    同一测试点内的所有 n 的和不超过 2×105。

    输入样例:
    6
    2
    1 1
    3
    2 1 3
    4
    2 2 2 3
    1
    1
    5
    2 3 2 4 2
    6
    1 1 5 5 4 4
    输出样例:
    -1
    2
    4
    1
    2
    -1
    思路:
    直接暴力
    题解:

    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=200010;
    int f[N],cnt[N];
    int n;
    
    int main()
    {
    	int T;
    	cin>>T;
    	while(T--)
    	{
    		cin>>n;
    		memset(cnt,0,sizeof cnt);
    		for(int i=1; i<=n; i++)
    		{
    			cin>>f[i];
    			cnt[f[i]]++;
    		}
    		bool flag=false;
    		int ans=-1;
    		for(int i=1; i<=n; i++)
    			if(cnt[i]==1)
    			{
    				ans=i;
    				flag=true;
    				break;
    			}
    		if(!flag) cout<<ans<<endl;
    		else
    		{
    			for(int i=1; i<=n; i++)
    				if(ans==f[i])
    				{
    					ans=i;
    					break;
    				}
    			cout<<ans<<endl;
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    作业 第四 张垚
    软件测试课堂练习 张垚
    增删改查
    计算器 作业
    activity 张垚
    第四作业 张垚
    第六周作业
    jsp第四周作业
    jsp求1-100之间的素数和
    JSP第一次测试
  • 原文地址:https://www.cnblogs.com/longwind7/p/15595315.html
Copyright © 2011-2022 走看看