Oppo R&D visitó nuestra universidad el 6 de agosto de 2019 para contratar FTE.
Ronda de codificación en línea : esta ronda consta de 3 preguntas de codificación alojadas en la plataforma hackerearth. Las preguntas eran de dificultad fácil y media.
Pregunta 1 : dado un número positivo n, encuentre el número total de permutaciones de números naturales de 1 a n en los que los índices (a partir de 1) de números primos también son números primos. Devuelve el ans%1000000007.
Restricciones: 1<=n<=10^6.
Entrada de muestra: n=5, Salida de muestra: 12
Las posibles permutaciones válidas son: (1, 2, 3, 4, 5), (1, 2, 5, 4, 3), (1, 5, 2, 4, 3), (1, 5, 3, 4, 2), (1, 3, 2, 4, 5), (1, 3, 5, 4, 2), (4, 2, 3, 1, 5), (4, 2, 5, 1, 3) , (4, 5, 2, 1, 3), (4, 5, 3, 1, 2), (4, 3, 2, 1, 5), (4, 3, 5, 1, 2).
Solución : Encuentre la cantidad de números primos de 1 a n, deje que el número sea p, ¡entonces esos p números primos se pueden ordenar en p posiciones en p! ¡Las formas y los números restantes (np) se pueden organizar en (np)! formas. ¡Así que la respuesta requerida es p!*(np)!.
Pregunta 2 : Dada una array A de n enteros, denote con i la longitud del subarreglo de A. Para cada longitud posible del subarreglo, es decir, 1<=i<=n, cuente el total de los subarreglos de modo que la suma de todos los elementos sea menor que o igual a k.
Formato de entrada: Primera línea no. de casos de prueba, segunda línea valor de k y n, tercera línea contiene elementos de array.
Formato de salida: para cada caso de prueba, imprima n números separados por espacios donde cada número es no. de subarreglos de longitud i que satisfacen la condición anterior.
Restricciones: 1<=t<=20, 1<=n<=10^5, 1<=k<=10^15, 1<=A[i]<=10^9.
Entrada: t=1, k=4, n=3, arr= 1, 2, 3, Salida: 3 1 0, Explicación: Longitud 1: [{1}, {2}, {3}], Longitud 2: [{1, 2}], Longitud 3: []
Solución : el enfoque de ventana deslizante se puede usar para resolver la pregunta una vez que la suma de los elementos de la ventana sea mayor que k, contaremos el no. de subarreglos de tamaño i en esa ventana y actualice el conteo para ellos. Para obtener más detalles, consulte el código https://ideone.com/7BvkL9.
Pregunta 3 : dada una array de n enteros positivos, calcule la suma total del piso de (a[i]/a[j]) para cada par de índices i, j.
Restricciones: 1<=a[i]<=10^5, 1<=n<=10^5.
Ejemplo de entrada: n=3, arr=[2, 4, 5].
Salida de muestra: 8
Explicación: Ar[0]/Ar[0] + Ar[0]/Ar[1] + Ar[0]/Ar[2] = 1 + 0 + 0 = 1
Ar[1]/Ar[0] + Ar [1]/Ar[1] + Ar[1]/Ar[2] = 2 + 1 + 0 = 3
Ar[2]/Ar[0] + Ar[2]/Ar[1] + Ar[2] /Ar[2] = 2 + 1 + 1 = 4, Suma= 1+3+4=8.
Solución : en primer lugar, calcule previamente los valores de b[i], que es igual al conteo de números, se puede hacer en. Considere un número i, por lo que el piso de todos los números entre i y 2 * i (2 * i no incluido) va a contribuir 1 a la suma. Y todos los números entre 2*i y 3*i (3*i no incluidos) contribuirán con 2 a la suma y así sucesivamente. El mul var en el código está tomando en cuenta esta cosa. Vaya como un tamiz y ahora calcular cómo cambia la respuesta es fácil ya que conocemos la cantidad de elementos entre este y el siguiente múltiplo. Para más detalles mira el código http://ideone.com/Xjpk7j.
Después de esta ronda, un total de 44 candidatos fueron preseleccionados para entrevistas.
Hubo 3 rondas de entrevistas 2 técnicas y 1 de RRHH
Ronda 1: En esta ronda, el entrevistador se centró principalmente en los conceptos básicos de C.
i. Cómo inicializar un puntero en una función. ¿Cuál será el resultado de seguir con printf(++i, –i, i++, i–, i).Combinar y clasificar rápidamente las complejidades del tiempo en el mejor y el peor de los casos y también me pidió que escribiera un pseudocódigo para una clasificación rápida.
ii. Defina la ejecución del programa con respecto a la gestión de la memoria, le expliqué cómo se carga la función y sus variables locales en una pila y cómo ocurre su desasignación. Luego me pidió que explicara la ejecución del programa independientemente de la gestión de la memoria y luego le expliqué las 6 fases del diseño del compilador, análisis léxico, análisis de sintaxis, etc.
iii. Me preguntó sobre el puntero colgante y cómo afecta la ejecución normal del programa.
IV. Escriba la sintaxis para “una array de puntero a una función que devuelve un puntero a una función que devuelve un puntero de carácter, cometí un pequeño error en esto más tarde, el entrevistador me corrigió.
v. Detectar ciclo en una lista enlazada. Le dije que el enfoque de puntero lento y rápido me pidió que diera una solución diferente a esa. Le pedí duplicados en la lista, dijo que no hay duplicados en la lista, luego le dije que la fecha de los Nodes se puede almacenar en un hashmap y una vez que tenemos una entrada ya presente en el mapa, hay un ciclo en él . Más tarde, el entrevistador me dijo cómo funcionará el método cuando haya duplicados, luego le dije que en lugar de almacenar valores de elementos en el mapa, almacenaremos la dirección de los Nodes en el mapa.
vi. Luego me preguntó sobre mi proyecto que hice en mi pasantía, algunas preguntas relacionadas con eso.
vii. Me preguntó el tamaño de int, luego me dio una estructura que tenía 2 tipos de int y una variable de tipo char y me preguntó el tamaño de esa estructura. Más tarde me pidió que escribiera el código de tamaño del operador en c que no sabía. Luego me preguntó a qué otras empresas se postuló antes de OPPO y por qué no seleccionó.
Esta ronda fue mixta para mí y me seleccionaron para la ronda 2.
Ronda 2: En esta ronda, el entrevistador me pidió que resolviera algunos problemas de codificación y me hizo preguntas. Primero, miró mi puntuación de la ronda de codificación en línea. No pude dar una solución optimizada para el tercer problema, así que me pidió que optimizara ese problema. Le di un enfoque optimizado aunque no estaba completamente optimizado, el entrevistador quedó impresionado con mi enfoque.
Me pidió salida para el siguiente programa.
Estático int u=10;
int u=20;
int divertido() {estática int u = 10;}
int principal() {imprimir u;}
Más tarde formuló muchas preguntas sobre esta diferencia entre la variable estática y la variable global, donde se les asigna memoria. Luego me preguntó sobre el enlace estático y dinámico y me pidió que escribiera un ejemplo para ambos. ¿Qué es la sobrecarga de funciones? Escriba un ejemplo, entre la sobrecarga y la anulación, cuál se realiza en tiempo de ejecución y cuál se realiza en tiempo de compilación. Luego me preguntó Monty hall problema https://en.wikipedia.org/wiki/Monty_Hall_problem, respondí el problema que me pidió que probara, lo expliqué usando el Teorema de Bayes (probabilidad condicional).
Imprime el orden vertical de un árbol, Imprime un árbol dado como una estructura de árbol (similar al problema de impresión de patrones), Problema de One Bfs, Combinar arrays ordenadas K y montón y sus aplicaciones.
Ronda 3: (HR) La entrevista comenzó con una presentación formal. Me preguntó sobre mis posibilidades de PPO en la empresa en la que hice una pasantía. Más tarde me preguntó sobre cómo fue mi día, una cosa que le gustó más y una cosa que no le gustó en nuestro proceso de entrevista. ¿Cómo traerá innovaciones en tecnología móvil?
¡¡¡ Finalmente 18 estudiantes (incluyéndome a mí) fueron seleccionados!!!
Consejos: además de la estructura de datos y los algoritmos, se revisan los conceptos básicos de C, preguntas basadas en resultados, punteros, etc.
Repase los conceptos completos de OOPS que le pidieron a OOPS en detalle a todos los estudiantes.
Mantén la calma y la paciencia (aunque es muy difícil de mantener especialmente cuando tienes una serie de rechazos) y cree en tus habilidades durante toda la temporada de prácticas.
Este artículo ha sido contribuido por Aishwary Kumar.
Publicación traducida automáticamente
Artículo escrito por aishwary191 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA