1.
问题描述
涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。
输入格式
输入的第一行包含一个整数n,表示涛涛的记录条数。
第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。
第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。
输出格式
输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。
样例输入
5
1 2 1 1 3
1 2 1 1 3
样例输出
1 1 2 3 1
评测用例规模与约定
1≤n≤1,000,读者的编号为不超过n的正整数。
代码:
public class J { public static void main(String[] args) {//5 1 2 1 1 3 Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int [] a=new int[1000]; for (int i=0;i<n;i++){ int temp=scanner.nextInt(); a[temp]=a[temp]+1; System.out.println(a[temp]); } } }
2.比较类似的问题之次数最多的数
问题描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
样例输入
6
10 1 10 20 30 20
10 1 10 20 30 20
样例输出
10
public class D {//出现次数最多的数 public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int [] a=new int[10001]; for(int i=0;i<n;i++){ int b=scanner.nextInt(); a[b]++; } int result=0; int result2=0; for(int i=0;i<10000;i++){ if (a[i]>result){ result=a[i]; result2=i; } } System.out.println(result2); //下面是为了观察,与题目无关 for (int i=0;i<10000;i++){ System.out.println(a[i]); } } }