Hoy me llamaron para una entrevista en Sopra Steria. Aproximadamente 100 personas estuvieron presentes durante el proceso de entrevista. Primera ronda como prueba técnica que consta de 2 preguntas complejas de sitios web de hackersearth. Aunque fracasé en la primera ronda en sí. Una pregunta que trato de resolver y la resolví en un 80%, pero no pude llegar a la segunda ronda. La pregunta que intenté se proporciona a continuación junto con la solución para que pueda publicar y cualquiera pueda obtener ayuda.
P. 1 Debe tomar la entrada del dispositivo de entrada con la siguiente sysntax:
Línea 1: T No de casos de prueba a verificar.
Línea 2: Recuento de array.
Línea 3: No de elementos de la array.
Línea 4: K-ésimo elemento más grande que se encuentra. Si no se encuentra devuelve -1.
Las líneas 2, 3 y 4 se repetirán de acuerdo con lo que hemos ingresado en la línea 1.
Regla: necesitamos encontrar las diferencias de los números ant 2, si no está presente, debemos agregar esto a la array dada. Entonces tendríamos todas las diferencias de números presentes en la array en el último.
Por ejemplo: ENTRADA:
1
5
1 3 5 6 7
2
1
1
2
Entrada: La línea 1 es: queremos pasar 2 casos de prueba.
Línea 2: tamaño de array de la primera array.
Línea 3: Elementos de la array separados por ESPACIO
Línea 4: Necesita encontrar los segundos elementos más grandes.
Línea 5: Tamaño de la array de la segunda array para el caso de prueba 2.
Línea 6: Elementos de la array
Línea 7: Segundo elemento más grande que se encuentra
Salida :
6
-1
Soluciones :
package soptasteria; import java.io.IOException; import java.util.Arrays; import java.util.Scanner; public class Test { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); int testCasesCount = sc.nextInt(); int[] result = new int[testCasesCount]; for (int i = 0; i < testCasesCount; i++) { int arraySize = sc.nextInt(); // System.err.println("Enter arr element after arr size"); // System.err.println("Array Entered : "+sc.nextLine()); sc.nextLine(); String[] strArr = sc.nextLine().split(" "); int[] array = makeArrayOfInteger(strArr); // System.out.println("Printing integer array"); int kth = sc.nextInt(); // System.out.println("Array Entered : "); printArray(array, arraySize); result[i] = goForBusiness(array, arraySize, kth); // System.out.println("Result : "+result[i]); } System.out.println("Output : "); for (int i = 0; i < testCasesCount; i++) { System.out.println(result[i]); } } private static int goForBusiness(int arr[], int len, int kthLargest) { int lastIndex = len; for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { int d = Math.abs(arr[i] - arr[j]); // System.out.println("Checked "+i+"th and "+j+"th element with differnece : "+d); if (!searchInArray(arr, lastIndex, d)) { arr[lastIndex++] = d; } } } Arrays.sort(arr, 0, lastIndex); // System.out.print("After Sort : "); // printArray(arr, lastIndex); if (kthLargest > lastIndex) return -1; return arr[lastIndex - kthLargest]; } private static int[] makeArrayOfInteger(String[] str) { int[] arr = new int[str.length * 4]; for (int i = 0; i < str.length; i++) arr[i] = Integer.parseInt(str[i]); return arr; } private static boolean searchInArray(int arr[], int len, int ele) { for (int i = 0; i < len; i++) if (arr[i] == ele) return true; return false; } private static void printArray(int arr[], int len) { for (int i = 0; i < len; i++) System.out.print(" " + arr[i]); System.out.println(""); } }
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA