排序 - (数组中最小的2个数字)

时间:2015-09-18 11:28:35

标签: java sorting

我试图在不使用ARRAYS的情况下打印给定集合中最小的2个数字的总和....

import java.util.Scanner;
class prog
{ 
    public static void main(String args[])
    {
        Scanner obj=new Scanner(System.in);
        int t=obj.nextInt();
        for(int i=1;i<=t;i++)
        {
            int n=obj.nextInt();
            int a=obj.nextInt();
            int b=obj.nextInt();
            for(int j=1;j<n;j++)
            {
                int c=obj.nextInt();
                if(c<a)
                {
                    b=a;
                    a=c;
                }
                else
                {
                    if(c<b)
                    {
                        b=c;
                    }
                }
            }
            System.out.println(a+b);
        }

    }
}`

在线编译器说它不适合大型测试用例 (大到100000) 为什么这样 ? 帮助

1 个答案:

答案 0 :(得分:0)

我认为你试图这样做。

import java.util.Scanner;

class Test {
    public static void main(String args[]) {
        Scanner obj = new Scanner(System.in);
        int t = obj.nextInt();
        System.out.println("  " + t);
        for (int i = 1; i <= t; i++) {

            System.out.println("Enter size of set : ");
            int n = obj.nextInt();
            System.out.println("Enter yout set : ");
            int a = obj.nextInt();
            int b = obj.nextInt();
            if (n > 2)
                for (int j = 2; j <= n; j++) {
                    int c = obj.nextInt();
                    if (c < a) {
                        b = a;
                        a = c;
                    } else {
                        if (c < b) {
                            b = c;
                        }
                    }
                }
            System.out.println(a + b);
            System.out.println("=====================");
        }
        obj.close();
    }
}