import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<Integer> alist = new<Integer> ArrayList(); /* * 首先要明白split方法的参数含义: split public String[] split(String * regex)根据给定的正则表达式的匹配来拆分此字符串。 然后就要明确正则表达式的含义了: \\s表示 空格,回车,换行等空白符, * +号表示一个或多个的意思,所以... */ int n = sc.nextInt(); sc.nextLine(); // 注意这 当读取n以后,要换一行 再进行下一行数据的读取 不然会出错 String[] s1 = new String[n]; // 声明一个以为数组读取每行数据 String[][] s2 = new String[n][]; // 声明一个二位数组 将一维数组的拆分的结果保存在二维数组中 for (int i = 0; i < n; i++) { s1[i] = sc.nextLine(); s1[i].trim(); // trim():去掉字符串首尾的空格 s2[i] = s1[i].split("\\s+"); // 以1个或多个空格拆分字符串 } for (int i = 0; i < n; i++) { for (int j = 0; j < s2[i].length; j++) { alist.add(Integer.valueOf(s2[i][j])); } } int que = 0; int chong = 0; Collections.sort(alist); // System.out.println(alist); for (int i = 0; i < alist.size() - 1; i++) { if (Integer.parseInt(alist.get(i).toString()) + 1 < Integer .parseInt(alist.get(i + 1).toString())) { que = Integer.parseInt(alist.get(i).toString()) + 1; } if (Integer.parseInt(alist.get(i).toString()) == Integer .parseInt(alist.get(i + 1).toString())) { chong = Integer.parseInt(alist.get(i).toString()); } } System.out.printf("%d %d\n", que, chong); } }
解题思路:读懂题意 ,以上知识要学会运用
注意事项:
参考代码:
0.0分
0 人评分
简单的a+b (C语言代码)浏览:765 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:545 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:573 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:400 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:485 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:592 |
DNA (C语言代码)浏览:440 |
Tom数 (C语言代码)浏览:758 |
DNA (C语言代码)浏览:837 |