hdu2561 第二小整数(排序)

来源:互联网 发布:钢铁侠分析软件 编辑:程序博客网 时间:2024/06/05 05:28

Problem Description
求n个整数中倒数第二小的数。
每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。
 

Input
输入包含多组测试数据。
输入的第一行是一个整数C,表示有C测试数据;
每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数 (每个数均小于100);
 

Output
请为每组测试数据输出第二小的整数,每组输出占一行。
 

Sample Input
221 231 1 3
 

Sample Output
21
思路:将数组从小到大排序
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();    }}

0 0