Testcase 2 not passed

here is my code for printing triplets which sum to a given number:
public class Main {
public static void main(String args[]) {
Scanner scn = new Scanner (System.in);
int n = scn .nextInt();
int [] array=new int[n];
for(int i=0;i<n;i++){
int num = scn .nextInt();
array[i]=num;
}
int itm=scn.nextInt();
int min = 0;
for(int i=0;i<array.length-1;i++){
for(int j=i;j<array.length;j++){
if(array[j]<array[min]){
min=j;
}
}
int temp =array[i];
array[i]=array[min];
array[min]=temp;
}
// for(int k=0;k<array.length;k++){
// System.out.println(array[k]);
// }
printing(array,itm);
}
public static void printing(int[]array,int itm){

    for(int i=0;i<array.length-2;i++){
        for(int j=i+1;j<array.length-1;j++){
           for(int k =j+1;k<array.length;k++){
               if (array[i]+array[j]+array[k]==itm){
                System.out.println(array[i]+", "+array[j]+" and "+array[k]);
               }
           }
        }
    }
    
  
}

}

can’t understand where the problem is .

You implemented the selection sort in wrong way.
the correct code is
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner scn = new Scanner (System.in);
int n = scn .nextInt();
int [] array=new int[n];
for(int i=0;i<n;i++){
int num = scn .nextInt();
array[i]=num;
}
int itm=scn.nextInt();

for(int i=0;i<array.length-1;i++){
int min = i;
for(int j=i+1;j<array.length;j++){
if(array[j]<array[min]){
min=j;
}
}
int temp =array[i];
array[i]=array[min];
array[min]=temp;
}
printing(array,itm);
}
public static void printing(int[]array,int itm){

for(int i=0;i<array.length-2;i++){
    for(int j=i+1;j<array.length-1;j++){
       for(int k =j+1;k<array.length;k++){
           if (array[i]+array[j]+array[k]==itm){
            System.out.println(array[i]+", "+array[j]+" and "+array[k]);
           }
       }
    }
}

}
}

Moreover for sorting you can use Arrays.sort(array).It is more optimised.

1 Like