解题思路:
采用的是计数排序的算法,先创建一个最大数量的数组记录出现个数,再判断出现0和2所对应的下标数,即为断号和重号。
判断0时,要判断当前数组值为0并且其前一项数组值不为0,这样才能保证该下标在票面范围内。
每轮结束时,判断是否已经确定a,b的值(断号和重号),即可退出循环。
参考代码:
import java.util.*; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.nextInt(); input.nextLine(); long[] arr=new long[100000]; for(int i=0;i<n;i++) { Scanner sc=new Scanner(input.nextLine()); while(sc.hasNext()) { int num=sc.nextInt(); arr[num]++; } } int a=0,b=0; for(int i=2;i<100000;i++) { if(arr[i]==0 && arr[i-1]!=0) a=i; if(arr[i]==2) b=i; if(a!=0 && b!=0) break; } System.out.println(a+" "+b); } }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:621 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2468 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:599 |
本人酷爱递归实现很多问题,这里也是浏览:556 |
WU-链表数据求和操作 (C++代码)浏览:1316 |
C语言训练-自由落体问题 (C语言代码)浏览:615 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:902 |
模拟计算器 (C++代码)浏览:806 |
printf基础练习2 (C语言代码)浏览:503 |
演讲大赛评分 (C语言代码)浏览:1634 |