Problem Description
求n个整数中倒数第二小的数。
每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。
每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。
Input
输入包含多组测试数据。
输入的第一行是一个整数C,表示有C测试数据;
每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数 (每个数均小于100);
输入的第一行是一个整数C,表示有C测试数据;
每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数 (每个数均小于100);
Output
请为每组测试数据输出第二小的整数,每组输出占一行。
Sample Input
2 2 1 2 3 1 1 3
Sample Output
2 1思路:将数组从小到大排序import java.io.FileInputStream; import java.io.OutputStreamWriter; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.Scanner; import java.util.Arrays; public class Main implements Runnable { private static final boolean DEBUG = false; private Scanner cin; private PrintWriter cout; private int n; private int[] a = new int[11]; private void init() { try { if (DEBUG) { cin = new Scanner(new InputStreamReader(new FileInputStream("f:\\OJ\\uva_in.txt"))); } else { cin = new Scanner(new InputStreamReader(System.in)); } cout = new PrintWriter(new OutputStreamWriter(System.out)); } catch (Exception e) { e.printStackTrace(); } } private boolean input() { n = cin.nextInt(); for (int i = 0; i < n; i++) { a[i] = cin.nextInt(); } return true; } private void solve() { Arrays.sort(a, 0, n); cout.println(a[1]); cout.flush(); } @Override public void run() { init(); int c = cin.nextInt(); while (c-- > 0) { input(); solve(); } } public static void main(String[] args) { // TODO code application logic here new Thread(new Main()).start(); } }