Subarreglo contiguo de suma más grande – Part 1

Escriba un programa eficiente para encontrar la suma del subarreglo contiguo dentro de un arreglo unidimensional de números que tenga la suma más grande.    C++ // C++ program to print largest contiguous array sum #include<iostream> #include<climits> using namespace std;    int maxSubArraySum(int a[], int size) {     int max_so_far = INT_MIN, max_ending_here = 0;    … Continue reading «Subarreglo contiguo de suma más grande – Part 1»

Convertir un árbol binario dado en una lista doblemente enlazada | conjunto 4

Dado un árbol binario (BT), conviértalo en una lista doblemente enlazada (DLL) en el lugar. Los punteros izquierdo y derecho en los Nodes se utilizarán como punteros anterior y siguiente, respectivamente, en la DLL convertida. El orden de los Nodes en DLL debe ser el mismo que el Inorder del árbol binario dado. El primer … Continue reading «Convertir un árbol binario dado en una lista doblemente enlazada | conjunto 4»

Longitud de la substring más larga sin caracteres repetidos

  Dada una string str , encuentre la longitud de la substring más larga sin repetir caracteres.  Ejemplo: Para “ABDEFGABEF”, las substrings más largas son “BDEFGA” y “DEFGAB”, con una longitud de 6. Para «BBBB», la substring más larga es «B», con una longitud de 1. Para «GEEKSFORGEEKS», hay dos substrings más largas que se … Continue reading «Longitud de la substring más larga sin caracteres repetidos»

Diferencia entre Google y Microsoft

En 2020, Google y Microsoft están muy bien establecidos y son conocidos en todo el mundo. Google y Microsoft, ambas son empresas tecnológicas multinacionales estadounidenses. Son conocidos por todos, pero lo que realmente hacen y son, puede no estar claro. Ambas empresas cuentan con diferentes productos y servicios propios que pueden ser desarrollados por ellas … Continue reading «Diferencia entre Google y Microsoft»

Experiencia en entrevistas de Microsoft (más de 4 años de experiencia)

Hubo 3 rondas de entrevistas en total 2 técnicas (DS/ALGO) y 1 ronda de gerente de contratación  Ronda 1 (Ronda técnica): 1)   Recorrido de orden de nivel del árbol binario  2) Pregunta modificada sobre el problema de la mochila  Ronda 2 (Ronda técnica): 1) Clasificación externa  2) Limitador de tasa de API de diseño  … Continue reading «Experiencia en entrevistas de Microsoft (más de 4 años de experiencia)»

Combinar ordenación para listas vinculadas

  A menudo se prefiere la ordenación por combinación para ordenar una lista vinculada. El lento rendimiento de acceso aleatorio de una lista enlazada hace que algunos otros algoritmos (como la ordenación rápida) funcionen mal y otros (como la ordenación heap) sean completamente imposibles.  Deje que head sea el primer Node de la lista enlazada … Continue reading «Combinar ordenación para listas vinculadas»

Experiencia de entrevista de Microsoft IDC (pasantía en el campus)

Ronda 1 (Prueba en línea): Había tres preguntas sobre cocubos: Primero (2 puntos): https://www.geeksforgeeks.org/calculate-the-total-fine-to-be-collected/ Segundo (3 puntos): encuentre el número más pequeño que, cuando se agregue a un número dado, haga que el número resultante sea un palíndromo. Tercero (5 puntos): https://www.geeksforgeeks.org/remove-bst-keys-outside-the-given-range/ 98 personas fueron seleccionadas para la siguiente ronda. Todos los que habían hecho … Continue reading «Experiencia de entrevista de Microsoft IDC (pasantía en el campus)»

Encuentra el elemento que aparece una vez

  Dada una array donde cada elemento aparece tres veces, excepto un elemento que aparece solo una vez. Encuentra el elemento que ocurre una vez. La complejidad temporal esperada es O(n) y O(1) espacio extra.  Ejemplos: Entrada: arr[] = {12, 1, 12, 3, 12, 1, 1, 2, 3, 3}  Salida: 2  En la array dada, … Continue reading «Encuentra el elemento que aparece una vez»

Duplica el primer elemento y mueve cero hasta el final.

Para una array dada de n enteros y suponga que ‘0’ es un número no válido y todos los demás son números válidos. Convierta la array de tal manera que si tanto el elemento actual como el siguiente son válidos y ambos tienen el mismo valor, duplique el valor actual y reemplace el siguiente número … Continue reading «Duplica el primer elemento y mueve cero hasta el final.»

Recorrido de orden de nivel línea por línea | Conjunto 2 (usando dos colas)

Dado un árbol binario, imprima los Nodes por niveles, cada nivel en una nueva línea.  C++ // C++ program to do level order traversal line by // line #include <bits/stdc++.h> using namespace std;   struct Node {     int data;     Node *left, *right; };   // Prints level order traversal line by line // using two … Continue reading «Recorrido de orden de nivel línea por línea | Conjunto 2 (usando dos colas)»