一组无序的自然数集合,由0,1,2... ...,n的数字和一个的数字X(X>=0 && X<=n)组成,请从集合中找出这个重复数字X。
一组无序的自然数集合,由0,1,2... ...,n的数字和一个的数字X(X>=0 && X<=n)组成,请从集合中找出这个重复数字X。
空格分割的自然数集合
重复数字
9 6 4 2 1 3 5 7 0 1 8
1
0,1,2,3,4,5,6,7,8,9 + 1
3 0 2 2 1
2
0,1,2,3 + 2
/* 思路:直接进行排序,找到那个重复的数字即可 */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] str = br.readLine().split(" "); int n = str.length; int[] arr = new int[n]; for(int i = 0;i<n;i++) arr[i] = Integer.parseInt(str[i]); Arrays.sort(arr); int same=arr[0]; for(int i = 0;i<n-1;i++){ if(arr[i]==arr[i+1]){ same = arr[i]; break; } } System.out.println(same); } }
import java.io.*; import java.util.Map; import java.util.HashMap; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String[] str = bf.readLine().split(" "); Map<String,Integer> map = new HashMap<>(); for(int i = 0;i < str.length;i++){ if(map.get(str[i]) != null){ System.out.println(str[i]); }else{ map.put(str[i],1); } } } }
import java.util.Arrays; import java.util.Scanner; public class Main { /** * * 运行时间:75ms * * 占用内存:10684k * */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s = scanner.nextLine(); String[] s1 = s.split(" "); Arrays.sort(s1); for (int i = 1; i < s1.length; i++) { if (s1[i].equals(s1[i - 1])){ System.out.println(s1[i]); break; } } } }
import java.util.*; public class Main { public static void main(String [] args) { Scanner sc=new Scanner(System.in); while(sc.hasNextLine()) { String str=sc.nextLine(); String [] array=str.split(" "); HashMap<String,Integer> map=new HashMap<>(); for(int i=0;i<array.length;i++) { if(map.containsKey(array[i]))//如果数字已经出现过了 { int value=map.get(array[i]);//通过键获取值 value+=1; map.put(array[i],value); } else//如果数字没有出现过 { map.put(array[i],1); } } //遍历map集合 Set<String> set=map.keySet(); for(String key:set) { int value=map.get(key); if(value!=1)//如果出现的次数不是1的话就打印出来 { System.out.println(key); } } } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); Set<Integer> hset = new HashSet<>(); while(sc.hasNext()){ int n = sc.nextInt(); if(hset.contains(n)){ System.out.println(n); break; }else{ hset.add(n); } } sc.close(); } }