Experiencia de entrevista de Amazon para SDE-1 | Amazon-WOW 2020

Amazon tiene un programa especial llamado AmazonWOW para mujeres. Es promover a la mujer en la tecnología. Es una muy buena oportunidad para las mujeres ya que solo tienen que competir con otras mujeres, no con los hombres. La solicitud en línea llegó en abril. El programa consiste en una pasantía de dos meses para estudiantes de preúltimo año y de tiempo completo más pasantía para estudiantes de último año.

Consistió en un total de 4 rondas, primero fue un concurso de codificación en línea y luego 3 entrevistas telefónicas.

Prueba en línea : 

La primera ronda fue una ronda de codificación en línea. Consistía en 2 preguntas de codificación y 28 MCQ. Tuvimos 1,2 horas. Las preguntas de codificación eran bastante simples, pero las MCQ eran muy difíciles. Me gustaría decir que la suerte importa mucho al descifrar la ronda de codificación en línea.

1. Primera pregunta: encuentra la subsecuencia común más larga entre dos strings. Es una pregunta de programación dinámica estándar, pero las restricciones no eran muy altas, así que lo resolví usando la recursividad.

2. Segunda pregunta: No encontré la pregunta exacta en ninguna plataforma pero fue muy sencilla. Se le proporciona una string que consiste en alfabetos ingleses en minúsculas, devuelva la dirección de recursos de Internet de la string.

La dirección de recursos de Internet de una string se define como

<protocolo>://<dominio>.ru[/<contexto>]

<protocolo> puede ser http o ftp.

<domain> es una string que consta de alfabetos ingleses en minúsculas.

<contexto> es una string no meptuosa de alfabetos ingleses en minúsculas.

Ej: httpsunrux -> http://sun.ru/x

Para los MCQ, debe tener un buen dominio de la programación orientada a objetos y el lenguaje c ++. :

La ronda 1: 

Para esta ronda, me dieron un enlace de Amazon Chime y un enlace de editor de código en vivo en el que tenía que codificar. El entrevistador comenzó pidiéndome mi presentación y luego me dio su presentación. En mi introducción, le hablé de mi pasión por la codificación, la escritura y la lectura competitivas.

Luego, inmediatamente pasamos a las preguntas de codificación. Me dijo que solo tengo 45 minutos para responder, así que tengo que encontrar el mejor enfoque posible.

1. Primera pregunta:  Encuentra x ^ y mod z. Le di el enfoque O(log(y)). Cubrí todos los casos extremos cuando x será cero o negativo cuando y será cero o negativo. Cuando y sea negativo, me dijo que devolviera un error al usuario. Codifiqué correctamente usando sangría y nombres adecuados de variables y funciones. Usé int para almacenar la variable, pero cuando el valor es muy alto, debo usar long long int. Me perdí este caso. Luego pasó a la segunda pregunta.

2. Segunda pregunta:  dado un conjunto de dependencias, tengo que encontrar uno de los ordenamientos adecuados de las dependencias. Le dije que usaré la ordenación topológica para esto. Me dijo que explicara mi enfoque y luego lo codifiqué. Pero mientras codificaba, me perdí un caso extremo cuando habrá un ciclo en la dependencia. Me dijo que corrigiera mi código. Corregí mi código comprobando si hay un ciclo presente en la dependencia.

3. Tercera pregunta:  para esta pregunta, le di dos enfoques, el primero contaba linealmente el número de x y el segundo usaba una búsqueda binaria modificada. No me pidió que codificara esta pregunta.

La mejor parte fue que ya había resuelto todas estas preguntas antes, así que no me puse nervioso allí. Al final, le pregunté dónde puedo mejorar. Me dijo que verificara el código antes de finalmente enviarlo al entrevistador.

Después de 12 días se declaró el resultado de esta ronda.

La ronda 2: 

Para esta ronda también, me proporcionaron el enlace de timbre de Amazon y el enlace de código en vivo. El entrevistador me hizo dos preguntas.

1. Primera pregunta:  agregue todos los valores mayores a cada Node en un BST dado. Le di la solución de complejidad de tiempo O (n). Inicialmente, había escrito el código incorrecto pero mi enfoque era correcto. Ejecutó mi código en seco, señaló el error que cometí en el código y me dijo que corrigiera el código. Corregí el código y quedó satisfecho con mi enfoque. Le hablé de la complejidad del tiempo, es decir, O(n). Le dije que si consideramos la pila interna, entonces la complejidad del espacio se o(n) porque en el peor de los casos, la altura de BST puede ser O(n) si es BST sesgada.

2. Segunda Pregunta:  Pero en esta pregunta, Él me dio tres condiciones.

1. Puede atravesar la estructura de datos en una sola dirección.

2. No puede usar espacio adicional, es decir, algoritmo en el lugar.

3. Puede utilizar cualquier estructura de datos de su elección.

Mi primer enfoque fue usar una estructura de datos de array. Le dije que en el primer recorrido encontraría el conteo de números negativos y luego comenzaría a llenar mi array de resultados. Pero dijo que no puedo usar espacio extra.

Mi segundo enfoque fue usar un árbol de búsqueda binaria y el resultado será un recorrido en orden del árbol. Pero me dijo que tengo que devolver la estructura de datos que estoy usando.

Luego me preguntó cuáles son las estructuras de datos que conozco. Le dije que sé montones, colas, pilas, listas de enlaces simples y listas de enlaces dobles. Entonces, de repente, me vino a la mente la lista doblemente enlazada y le dije que usaré la lista doblemente enlazada. Me dijo que en doble enlace se puede atravesar en los dos sentidos. Luego le dije que usará una lista de enlaces individuales. Me dijo que escribiera código y ejecutó en seco mi código. Estaba satisfecho con mi código.

Mi segundo entrevistador fue una persona muy servicial y bien informada. Al final, dijo “fue un placer entrevistarte. ”

Después de 11 días se declaró el resultado de la segunda ronda.

Ronda 3: 

Para esta ronda también, me proporcionaron el enlace de amazon chime y el enlace de código en vivo. El entrevistador era una persona muy agradable y relajada. Trató de hacerme sentir cómoda. Se presentó y luego hice mi breve presentación. En esta ronda, me hicieron dos preguntas. Una era una pregunta de codificación y la otra era una pregunta del sistema operativo (sistema operativo).

1. Primera pregunta:  Si tenemos un código bien optimizado, ¿De qué factores depende el número máximo de hilos en un proceso?

Tuvimos alrededor de media hora de discusión sobre este tema. Le conté cómo se usan los hilos en la aplicación cliente-servidor, uso de hilos en un editor de texto que simultáneamente realiza escritura, autocorrección y sugerencias. Me preguntó si un sitio tiene 1 millón de clientes, entonces se crearán 1 millón de hilos, le dije sobre el uso de múltiples servidores. Le dije el no. hilo depende de los recursos de la máquina. Le dije que dependerá de la memoria de la computadora. Entonces quiso saber qué memoria le afecta, memoria primaria o memoria secundaria. Le dije que la memoria primaria afectará el número de subprocesos ya que todos los procesos/subprocesos residen en la memoria primaria. También estaba pensando en otros factores, pero luego pasó a la pregunta de codificación.

Después de esto, pasamos a la pregunta de codificación.

2. Segunda pregunta:   encuentra el primer número positivo que falta en una array.

Mi primer enfoque fue usar hash, la complejidad temporal de este enfoque era O(n) y la complejidad espacial era O(n). Me dijo que lo hiciera en el espacio constante. Le sugerí que cada vez que encuentre un elemento y si es más pequeño que n, entonces haré que el elemento sea negativo en ese índice. Luego, recorreré toda la array nuevamente y si encuentro algún índice cuyo valor no sea negativo, significa que ese elemento no está presente y es el primer no positivo faltante. Si no tal no. se encuentra, entonces la respuesta será n (tamaño de la array) + 1. Pero este enfoque no funcionará para una array que contenga un no negativo y repetitivo. Así que mejoré mi código para manejar el no negativo y repetitivo.

Quedó muy satisfecho con mi enfoque. Al final, me pidió que le hiciera una pregunta. Le pregunté cómo puedo mejorar más. Parecía estar muy impresionado por mí. Me dijo que soy muy hábil en el manejo de todos los casos extremos y que estoy muy concentrado.

Resultado: SELECCIONADO

Algunos consejos importantes: 

1. Cree siempre en ti mismo.

2. Las habilidades de comunicación importan mucho en la entrevista.

3. La suerte es un factor importante, no puedes ignorarlo.

4. Sea siempre positivo en la vida. No importa lo difícil que sea la situación, no te rindas.

5. La práctica y la paciencia son la clave.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *