7-1 有重复的数据I (20 分)
在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。
输入格式:
你的程序首先会读到一个正整数n,1<=n<=100000。 然后是n个整数,这些整数的范围是[1,100000]。
输出格式:
如果这些整数中存在重复的,就输出:
YES
否则,就输出: NO
输入样例:
5 1 2 3 1 4
输出样例:
YES
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
class Input{
StringTokenizer tok;
BufferedReader buf;
public Input() {
// TODO Auto-generated constructor stub
buf = new BufferedReader(new InputStreamReader(System.in));
}
boolean hasNext()
{
while(tok==null||!tok.hasMoreElements())
{
try {
tok = new StringTokenizer(buf.readLine());
} catch (Exception e) {
// TODO: handle exception
return false;
}
}
return true;
}
String next()
{
if(hasNext())
return tok.nextToken();
return null;
}
int nextInt()
{
return Integer.parseInt(next());
}
}
public class Main {
public static void main(String[] args){
Input in = new Input();
Set<Integer> s = new HashSet<>();
int n = in.nextInt();
for(int i=0;i<n;i++)
s.add(in.nextInt());
if(s.size()==n)
System.out.println("NO");
else
System.out.println("YES");
}
}
代码是转的别人的 传送门>>>> 顾道长生’
因为这个题要用到java输入外挂(比Scanner输入输出节省时间),所以我记录一下,留当复习。