ÁRBOL
Ø
Recorrido de orden en zig / zag (espiral) usando << Usar dos pilas >>
Ø
Vista derecha / Vista izquierda de un árbol binario
Ø
Altura / ancho de un árbol binario
Ø
Vista superior de un árbol binario << Usar cola para BFS >>
Ø
BFS – Recorrido de orden de nivel (usando QUEUE)
Ø
DFS: en orden, preordenar, posordenar (usando recursión o apilamiento)
Ø
Imprima todos los nodos a K distancia de la raíz. (Usar recursividad)
Ø
Imprima todos los nodos de hoja (utilizando cualquier BFS / DFS transversal): igual que la vista inferior de un árbol
Ø
Diámetro de un árbol (opcional)
Ø
BST, árbol binario completo, árbol sesgado, árbol BST equilibrado
Ø
Cree un árbol a partir del recorrido en orden y en preorden.
Ø
Compruebe que todos los nodos de hoja estén al mismo nivel o no
Ø
Verifique que el árbol dado esté equilibrado o NO
Ø
Verifique que el árbol dado sea BST o no.
Formación
Ø
Todos los pares cuya suma recibe ‘K’ (Do in O (N))
Ø
Todos los pares cuya suma es divisible por “K” dada (Hacer en O (N) usando espacio adicional un Mapa de Hash)
Ø
Gire la matriz ordenada en el índice dado ‘k’ y luego encuentre la ‘Clave’ dada (Usando la Búsqueda Binaria solo O (LogN))
Ø
Clasificación de inserción (el mejor caso puede ser O (N) si las entradas ya están ordenadas)
Ø
Clasificación rápida (el peor de los casos puede ser O (N * N) si las entradas ya están ordenadas)
Ø
Ordenar fusión (siempre dar O (N logN) (Usa dividir y conquistar)
Ø
Búsqueda binaria (O (LogN) siempre solo si la entrada está ordenada) (Si hay duplicado, devolverá cualquier índice aleatorio de todos los duplicados de la clave dada)
Ø
Realice una búsqueda lineal O (N) para una matriz no ordenada pero con menos número de comparación utilizando una entrada vacía vacía al final de la matriz (muy famosa)
Ø
Invierta una entrada de matriz en el bloque en ‘K’ (igual que la lista vinculada inversa con un bloque de nodos de tamaño “k” dado)
Lista enlazada
Ø
Encuentre el centro de la lista vinculada
Ø
Encuentre si hay un bucle en la lista vinculada o no.
Ø
Invertir la lista vinculada (recursiva e iterativa)
Ø
Encuentre el punto común de dos listas vinculadas (si se fusiona en algún momento)
Apilar
Ø
Diseñe una estructura de datos para hacer PUSH, POP, MIN en O (1) tiempo (Use Two Stack)
Ø
Invierta la pila dada (ya sea usando una cola adicional o use doble recursión para un espacio constante)
Ø
Ordenar una pila dada (usar doble recursión con espacio constante)
Hash-Map
Ø
Uso de Hash-Map (clave, valor) (resolverá muchos problemas complejos en O (1) complejidad de tiempo pero espacio extra)
Montón
Ø
MIN Heap, MAX Heap (el árbol / matriz binarios completos, ambos pueden representar un montón)
Ø
Encuentra Kth Min / Max de un flujo de números dado.
Ø
Heap-Sort Basic
Pregunta específica de Amazon
GeekForGeek: http://www.geeksforgeeks.org/tra …
Relacionado con la matriz 2D Pocas preguntas Encuentre la fila con un máximo de 1s, encuentre un número dado en una matriz 2D ordenada
Esto es suficiente. Solo cuide algunas cosas:
No use ningún nombre aleatorio de variables I, j, x, y
No uses ningún nombre de método irrelevante
Intenta hacer una carrera en seco con todos los casos de prueba.
Pregunte todo el tipo de entrada posible antes de comenzar a codificar.
Al final, debe preguntar qué equipo está entrevistando y qué tipo de tecnología tienen.