7-1 有重复的数据

题目:

在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。

输入格式:

你的程序首先会读到一个正整数n,1<=n<=100000。然后是n个整数。

输出格式:

如果这些整数中存在重复的,就输出:

YES

否则,就输出:

NO

输入样例:

5
1 2 3 1 4

输出样例:

YES

解题:

方法一:使用数组,将元素存入数组并依次进行比较

import java.util.Scanner;

public class RepeatData {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a[] = new int[n];
		for(int i=0;i<a.length;i++)
			a[i] = sc.nextInt();
		int i;
		loop:for(i=0;i<a.length;i++) {
			for(int j=a.length-1;j>i;j--) {
				if(a[i]==a[j]) {
					System.out.println("YES");
					break loop;
				}
			}
		}
		if(i==a.length)
			System.out.println("NO");
	}
}

方法二:学过集合之后可以使用HashSet集合存储元素,如果存储后集合长度发生变化,则说明有重复元素。

import java.util.HashSet;
import java.util.Scanner;

public class RepeatData {
	public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<Integer>();
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {
			set.add(sc.nextInt());
		}
		sc.close();
		if (set.size() < n) {
			System.out.println("YES");
		} else {
			System.out.println("NO");
		}
	}
}
原创文章 14 获赞 12 访问量 1196

猜你喜欢

转载自blog.csdn.net/weixin_45713984/article/details/106172101
7-1
今日推荐