7-1 sdut-array1-1-有重复的数据(II)
分数 20
全屏浏览
切换布局
作者 周雪芹
单位 山东理工大学
在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。
输入格式:
你的程序首先会读到一个正整数n,1<=n<=100000。然后是n个整数。
输出格式:
如果这些整数中存在重复的,就输出:YES;否则,就输出:NO。
输入样例:
5
1 2 3 1 4
输出样例:
YES
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
boolean hasDuplicates = checkDuplicates(nums);
if (hasDuplicates) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
public static boolean checkDuplicates(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
if (set.contains(num)) {
return true;
}
set.add(num);
}
return false;
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
boolean hasDuplicates = checkDuplicates(nums);
if (hasDuplicates) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
public static boolean checkDuplicates(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
if (set.contains(num)) {
return true;
}
set.add(num);
}
return false;
}
}