2015-09-18 1 views
-4

Я пытался напечатать сумму наименьших чисел 2 из заданного набора без использования МАССИВОВ ....Sorting- (наименьшее 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) почему так? Помощь

+0

'для (Int J = 1, J melpomene

+0

что.. эта ошибка за один раз? – Aditya

+0

Почему необходимо проверить <= b?, самый маленький из них должен быть обоими из них? – Aditya

ответ

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(); 
    } 
} 
Смежные вопросы