La estructura de datos y los algoritmos son elementos obligatorios en casi todas las entrevistas técnicas. Ya sea Google, Microsoft, Amazon o cualquier otro gran jugador tecnológico, todos hacen varias preguntas basadas en la estructura de datos y los algoritmos durante su proceso de contratación.
Y no es necesario que tenga un conocimiento decente de estructuras de datos y algoritmos solo por resolver varios problemas de codificación, sino que, además de sus habilidades técnicas o de programación, le permite al entrevistador evaluar sus habilidades para resolver problemas y cómo solución óptima y eficiente usted puede proporcionar para un problema particular.
Sin embargo, algunas de las personas a menudo tratan DS y Algorithms como otras materias de informática e incluso tienden a ignorarlas también. Aunque puede haber muchas razones detrás de esto, como: falta de orientación y tutoría, falta de disponibilidad de recursos de aprendizaje de calidad, etc.
Pero GeeksforGeeks ha resuelto este importante problema de todas las personas, ya que le brindamos el curso DSA Live for Working Professionals , donde aprenderá todos los conceptos de estructuras de datos y algoritmos para descifrar la entrevista de la empresa de sus sueños. Como sugiere el nombre, el curso sería muy beneficioso para los profesionales que trabajan , ya que las clases se programarán los fines de semana, sábados y domingos.
detalles del curso
Será un extenso programa en línea (en vivo) centrado en entrevistas para desarrollar y mejorar sus habilidades de DSA. El curso está diseñado de tal manera que lo ayudará a mejorar sus habilidades de codificación y resolución de problemas al mejorar su comprensión de las estructuras de datos y los algoritmos. El objetivo principal de este curso es ayudarlo en la preparación para las entrevistas de codificación de empresas como Amazon, Microsoft, Uber, etc.
Como será una clase en vivo en línea, puede asistir a esta clase desde cualquier ubicación geográfica y también puede consultar sus dudas o consultas al instructor de manera similar a un programa de aula fuera de línea. Aunque el curso está abierto para todos los que quieran aprender estructuras de datos y algoritmos, se recomienda principalmente a los estudiantes de pre-final / último año que se preparan para las campañas de colocación y los empleados que buscan un cambio de trabajo.
Algunas de las características destacadas de este curso se proporcionan a continuación:
- Asistencia para resolver dudas (TA’s)
- Fuerza de lote limitada: 30 candidatos
- Certificado de finalización del curso
- 6 meses de acceso a conferencias en vivo grabadas de este curso
- Aparte de eso, también obtendrá acceso gratuito al contenido del curso DSA por un valor de INR 5999/ , con algunas características notables:
- Vídeos de conferencias premium del Sr. Sandeep Jain
- Contenido especializado basado en temas
- Pruebas de evaluación semanales y pistas de práctica
- Portal de resolución de dudas 7 Days Active
Este curso Geeks Classes – Live Session se le proporciona a un precio con descuento de INR 10,999/- . Puede registrarse fácilmente para este curso en vivo siguiendo los pasos que se mencionan a continuación:
- Paso 1: en primer lugar, visite la página oficial de DSA Live Classes for Working Professionals
- Paso 2: aquí, se le pedirá que haga clic en el botón ‘Registrarse ahora’ y proporcione los detalles requeridos en el formulario.
- Paso 3: Luego, debe realizar el pago de la tarifa.
- Paso 4: Luego, se registrará con éxito en el curso y podrá asistir a las clases en vivo según el horario.
Contenido del curso
Semana 1:
- Análisis de Algoritmo – Análisis de fondo a través de un Programa y sus funciones
- Notaciones asintóticas : explicación del mejor, promedio y peor caso a través de un programa
- Arreglos : introducción y ventajas, tipos de arreglos (arreglo de tamaño fijo, arreglo de tamaño dinámico), operaciones en arreglos (búsqueda, inserciones, eliminación, arreglos frente a otros DS, inversión: explicación con complejidad)
- Problemas : rotación a la izquierda de la array en 1, rotación a la izquierda de la array en D lugares, líderes en una array, problema de diferencia máxima, problema de compra y venta de acciones, problema de captura de agua de lluvia, suma máxima de subarreglo, subarreglo par-impar más largo, circular máxima subarreglo de suma, elemento mayoritario, técnica de ventana deslizante, técnica de suma de prefijos, etc.
- Recursión básica
Semana 2:
- Manipulación básica de bits
- Operadores bit a bit en C++ : operación de operadores AND, OR, XOR, operación de desplazamiento a la izquierda, desplazamiento a la derecha y no bit a bit
- Operadores bit a bit en Java : operación AND, OR, operación bit a bit no, desplazamiento a la izquierda, operación de desplazamiento a la derecha y desplazamiento a la derecha sin firmar
- Problema : verifique que el bit K-ésimo esté configurado o no (Método 1: Usar el cambio a la izquierda, Método 2: Usar el cambio a la derecha)
- Problema : recuento de bits establecidos (método 1: método simple, método 2: algoritmo de Brian y Kerningham, método 3: uso de la tabla de búsqueda)
- Problema : para verificar si un número es una potencia de 2 o no, ocurrencias impares en una array, dos números que tienen ocurrencias impares en una array, generar un conjunto de potencia usando operadores bit a bit
- Hashing : introducción y análisis de la complejidad del tiempo, aplicación de hashing, discusión sobre la tabla de direcciones directas, trabajo y ejemplos de varias funciones hash, introducción y diversas técnicas sobre manejo de colisiones, enstringmiento y su implementación, direccionamiento abierto y su implementación, enstringmiento V/S abierto Direccionamiento, Double Hashing, C++ (Conjunto desordenado, Mapa desordenado), Java (HashSet, HashMap)
- Problemas : contar elementos distintos, contar la frecuencia de los elementos de un arreglo, la intersección de dos arreglos, la unión de dos arreglos no ordenados, emparejar con la suma dada en un arreglo no ordenado, subarreglo con suma cero, subarreglo con una suma dada, el subarreglo más largo con una suma dada, el subarreglo más largo con el mismo número de 0 y 1, el intervalo común más largo con la misma suma en un arreglo binario, la subsecuencia consecutiva más larga, contar elementos distintos en cada ventana
Semana 3:
- Strings : discusión de String DS, problemas (dada una string: verifique si son un anagrama entre sí, encuentre el carácter más a la izquierda que se repite, encuentre el carácter más a la izquierda que no se repite, encuentre el rango lexicográfico en O (n) tiempo, Implementación del problema de rango lexicográfico discutido anteriormente, Dada una string de texto y una string de patrones, encuentre si existe una permutación del patrón en el texto, Dadas dos strings, verifique si son rotaciones entre sí o no, Búsqueda de varios patrones algoritmos)
- Listas enlazadas : introducción, implementación en CPP, implementación en Java, comparación con Array DS, lista doblemente enlazada, lista enlazada circular, problemas de bucle (detección de bucles, detección de bucles mediante detección de ciclo de Floyd)
Semana 4:
- Problema de lista enlazada : mitad de la lista enlazada, enésimo Node desde el final de la lista enlazada, eliminación de un Node sin acceder al puntero principal de la lista enlazada, método iterativo para revertir una lista enlazada, método recursivo para revertir una lista enlazada, segregación par-impar Nodes de lista vinculada, la intersección de dos listas vinculadas, intercambio de Nodes de lista vinculada por pares, clonación de una lista vinculada utilizando un puntero aleatorio, diseño de caché LRU
- Pilas : comprensión de la estructura de datos de pila, aplicaciones de pila, implementación de pila en array y lista vinculada (en C++, en Java)
- Problema : paréntesis equilibrado, dos pilas en una array, pilas K en una array, problema de rango de existencias con variaciones, elemento mayor anterior, elemento mayor siguiente, área rectangular más grande en un histograma
- Colas : introducción y aplicación, implementación de la cola usando array y LinkedList (en C++ STL, en Java, pila usando cola)
- Problema : invertir una cola, generar números con dígitos dados, máximos de todos los subarreglos de tamaño k
Semana 5:
- Árbol binario : introducción, árbol, aplicación, árbol binario, recorrido del árbol
- Implementación de : recorrido en orden, recorrido en orden previo, recorrido en orden posterior, recorrido en orden de nivel (línea por línea), recorrido en árbol en forma de espiral
- Problemas : tamaño del árbol binario, máximo en el árbol binario, altura del árbol binario, impresión de Nodes a distancia K, impresión de la vista izquierda del árbol binario, propiedad de suma de niños, verificación del árbol binario equilibrado, ancho máximo del árbol binario, conversión de árbol binario a Lista doblemente enlazada, Construir árbol binario a partir de Inorder y Preorder, El diámetro de un árbol binario, Problema LCA con una solución eficiente
- Árbol de Búsqueda Binaria – Antecedentes, Introducción y Aplicación, Implementación de Búsqueda en BST (En CPP, En Java), Inserción en BST (En CPP, En Java), Eliminación en BST (En CPP, En Java), Piso en BST (En CPP, en Java)
- BST autoequilibrado , árbol AVL, árbol rojo-negro, conjunto en C++ STL, mapa en C++ STL, TreeSet en Java, TreeMap en Java
- Problemas : el techo de una clave en BST, el techo en el lado izquierdo en una array, encontrar Kth más pequeño en BST, verificar BST, arreglar BST con dos Nodes intercambiados, emparejar suma con BST dado, suma vertical en un árbol binario, vertical Recorrido del árbol binario, vista superior del árbol binario, vista inferior del árbol binario
Semana 6:
- Heaps : introducción e implementación
- Montón binario : inserción, almacenamiento en montón y extracción, disminución de clave, eliminación y creación de montón
- Ordenar montón
- Cola de prioridad en C++
- PriorityQueue en Java
- Problemas : ordenar array ordenada K, comprar elementos máximos con suma dada, elementos más grandes K, fusionar arrays ordenadas K, mediana de una secuencia
- Algoritmos de gráficos : introducción a gráficos, representación de gráficos (array de adyacencia, lista de adyacencia en CPP y Java, lista VS de array de adyacencia), búsqueda primero en amplitud (aplicaciones), búsqueda primero en profundidad (aplicaciones)
Semana 7:
- Algoritmos gráficos
- Problemas : ruta más corta en un gráfico no ponderado, número de islas, escalera de serpiente, ciclo de detección (en el gráfico no dirigido, en el gráfico dirigido), clasificación topológica (algoritmo basado en BFS de Kahn, algoritmo basado en DFS)
- Ruta más corta en gráfico acíclico dirigido
- Algoritmos codiciosos : introducción, problema de selección de actividades, mochila fraccional, problema de secuenciación de trabajos
Semana 8:
- Programación Dinámica – Introducción, Programación Dinámica (Memoización, Tabulación)
- Problemas : subsecuencia común más larga, combinaciones de conteo de cambios de monedas, problema de distancia de edición (enfoque ingenuo, enfoque DP), problema de subsecuencia creciente más larga (enfoque ingenuo, enfoque eficiente), cortes máximos, monedas mínimas para hacer un valor, saltos mínimos para alcanzar en el final, problema de mochila 0-1 (enfoque ingenuo, enfoque eficiente), estrategia óptima para un juego, variación de la subsecuencia común más larga, variación de la subsecuencia creciente más larga, problema de caída de huevos
Preguntas frecuentes (FAQ)
Q1. ¿Es este un curso específico del idioma?
Respuesta Sí, el foro de discusión y la asistencia para dudas están disponibles solo para C++ y Java .
Q2. ¿Recibimos alguna asistencia de colocación?
Respuesta Aquí, en este curso, lo estamos preparando para sus entrevistas. Y sí, tenemos una plataforma de contratación donde puede ver la vacante actual y una vez que haya completado este curso, puede postularse para cualquiera de ellos.
Q3. ¿Quién es elegible para este curso?
Respuesta El curso está abierto a todo el mundo. Aunque se recomienda encarecidamente a los estudiantes de pre-final / último año que se preparan para las campañas de colocación y los empleados que buscan un cambio de trabajo.
Q4. ¿Obtendré alguna certificación después de completar el curso?
Respuesta Sí, y junto con la certificación, también obtendrá 6 meses de acceso a conferencias en vivo grabadas de este curso y acceso al curso adicional de estructuras de datos y algoritmos en línea.
Este curso DSA Live para profesionales que trabajan seguramente lo ayudará a dominar las habilidades de estructura de datos y algoritmos convenientemente para obtener el trabajo de sus sueños; todo lo que necesita es una conexión a Internet que funcione y una computadora portátil o PC. Ahora , que estas esperando..?? Regístrese lo antes posible!!
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