RESUELVO el PROBLEMA que hice en MI PRIMERA ENTREVISTA como INGENIERO DE SOFTWARE

āđāļŠāļĢāđŒ
āļāļąāļ‡
  • āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļĄāļ·āđˆāļ­ 3 āļŠ.āļ„. 2024
  • Consigue mi curso en MasterMind! 🚀 bit.ly/3kr4bTc
    Seguimos viendo mÃĄs problemas de entrevistas de trabajo para posiciones de desarrollador o ingeniero de software. Esta vez, con Árboles!
    ðŸ‘ū Redes sociales ðŸ‘ū
    ▹ Twitter: / bettatech
    ▹ Instagram: / betta_tech
    ▹ Canal Secundario: / @forkdebettatech
    ▹ Slack: bit.ly/33gaDDM
    ðŸ‘Ļ🏞‍ðŸŦ MIS CURSOS ðŸ‘Ļ🏞‍ðŸŦ
    ðŸ‘― Curso de iniciaciÃģn a la programaciÃģn con JavaScript:
    ▹ bit.ly/3kr4bTc
    👕 MERCHANDISING DEL CANAL:
    ▹ Tienda TH-cam: / bettatech
    ▹ Tienda Teespring: teespring.com/stores/bettatec...
    ⭐ïļ AFILIADOS ⭐ïļ
    🎁 7% Descuento en HOSTINGER (CÃģdigo BETTATECH)
    ▹ www.hostg.xyz/aff_c?offer_id=...
    🧠 Autocompletado con IA (Kite)
    ▹ www.kite.com/get-kite/?...
    ðŸū MacPaw (CleanMyMacX):
    ▹ macpaw.audw.net/c/2523912/941...
    ðŸŽĩ TODA la mÚsica es de EpidemicSound:
    ▹ www.epidemicsound.com/referra...
    ✉ïļ CONTACTO PROFESIONAL:
    ▹ Respuesta no garantizada:
    bettatechyt@gmail.com
    📚 LIBROS 📚
    Design Patterns
    ▹ amzn.to/39XuQlq
    Head First Design Patterns
    ▹ amzn.to/2uq6XUq
    Refactoring
    ▹ amzn.to/2SQnf2c
    Clean Architecture
    ▹ amzn.to/3bZVonJ
    Clean Code
    ▹ amzn.to/32WVKq3
    Introduction to Algorithms
    ▹ amzn.to/34SyVFP
    Cracking the Coding Interview
    ▹ amzn.to/2QkdwC6
    ⏱ ÍNDICE:
    â€Ē 0:00 - IntroducciÃģn
    â€Ē 1:34 - Árboles
    â€Ē 2:54 - El Problema
    â€Ē 3:31 - Implementando la soluciÃģn
    â€Ē 4:07 - Dibujitos
    â€Ē 6:30 - Implementando la soluciÃģn 2
    â€Ē 14:53 - AnÃĄlisis de coste
    â€Ē 17:27 - ConclusiÃģn
    #roadTo100k
  • āļ§āļīāļ—āļĒāļēāļĻāļēāļŠāļ•āļĢāđŒāđāļĨāļ°āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ

āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ • 221

  • @BettaTech
    @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +32

    Si querÃĐis ver el otro problema REAL que resolvimos en BettaTech, os lo dejo por aquí!
    👉ðŸŧ th-cam.com/video/HoT3y-L2t20/w-d-xo.html
    Como bien ha notado @Javier GavilÃĄn MÃĐrida, ancestor debe inicializarse a NULL para tratar el caso en el que nos pasen nodos no existentes. Gracias!

    • @imt3206
      @imt3206 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hey wey. Por quÃĐ Betta Tech y no Alfa Tech?

    • @scarfacethebest
      @scarfacethebest 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      O igual mejor validar antes del for que route1 y route2 no sean null, de lo contrario retornas null sin llegar al for.

  • @HolaMundoDev
    @HolaMundoDev 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +317

    Me encanta ver como va mejorando la calidad de tus videos!

    • @TheChersa12
      @TheChersa12 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +37

      Los amo a los dos, les besaría sus calvas hasta que tenga mi título

    • @tonatiuhislas8006
      @tonatiuhislas8006 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +4

      Oh my god!! el dross de la programacion aqui!!!! saludos.

    • @latincoder
      @latincoder 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +8

      Ya van subiendo la barra bien cabron, tengo que ponerme Las pilas

    • @emanuelmeza4290
      @emanuelmeza4290 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +5

      Esas barbas les dan poderes de desarrollo jajaja

    • @Luis-ww1kx
      @Luis-ww1kx 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Se rompiÃģ la cuarta pared... fffuuuuaaaa!!!!

  • @cristianh.valderrama1603
    @cristianh.valderrama1603 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +111

    No podemos volverlo dinÃĄmica? Es decir al final del video dejas como un "ejercicio" y en el siguiente video lo explicas o das la soluciÃģn. Ganas tu y ganamos nosotros

    • @reydavid7300
      @reydavid7300 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +7

      Me gusta esa dinÃĄmica, asi para practicar y se puede hacer seguido!

    • @noehernandez5504
      @noehernandez5504 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +6

      Sigue a liratron, hace streams los miÃĐrcoles realizando ejercicios de leetcode, es ingeniero en Amazon, igual a veces lleva a invitados interesantes

  • @vladimirreyes1661
    @vladimirreyes1661 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +27

    Cuando estoy resolviendo algoritmos siemper me enfoco en el problema pero casi no visualizo los posibles acontecimientos , tengo que reforzar esa parte.

  • @juanag2278
    @juanag2278 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +5

    Una secciÃģn sin duda muy interesante, me parecen geniales estÃĐs tipo de videos. Saludos!

  • @victorguevara4698
    @victorguevara4698 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +4

    Brutal, lo vere uno y otra vez para entenderlo mejor. Saludos.

  • @wilmerrodriguezs9306
    @wilmerrodriguezs9306 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    Me encanta este tipo de video, no dejes de hacerlos. Excelente contenido.

  • @juancamiloaponte2865
    @juancamiloaponte2865 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hace poco encontrÃĐ tu canal y es increíble, muchas gracias por estos videos.

  • @agustindeluca5823
    @agustindeluca5823 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +8

    Me gustan mucho este tipo de videos, sería genial una secciÃģn dedicada!

  • @davidhch9833
    @davidhch9833 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +13

    Muchas gracias por este tipo de vídeos. :)

  • @arminschneider9132
    @arminschneider9132 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Muchas gracias por este tipo de videos, son muy Útiles para practicar c:

  • @pablolanda1212
    @pablolanda1212 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    Te lo juro tio, te explicas mejor que muchos profesores. Muchas gracias por tus vídeos y ojala llegues al millon de subs.

  • @fd2195
    @fd2195 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +5

    Gracias por el video! Sería interesante mÃĄs videos sobre esta serie, creo que ayudan mejor a aterrizar teoría e ideas que tenemos. Los de videos de explicaciÃģn de algoritmos serían muy buenos tambiÃĐn :) saludos!

  • @Efryed
    @Efryed 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +5

    Estos vídeos me parecen muy interesantes y mÃĄs que estoy viendo este tema en la universidad.

  • @luismiguelcopadiaz1940
    @luismiguelcopadiaz1940 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +8

    Cursos de estructuras de datos y algoritmos! Por favor

  • @fabianbetancourt973
    @fabianbetancourt973 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente video gracias,,me han aportado mucho en mi carrera q estoy haciendo actualmente,, gracias

  • @CM-ls6fh
    @CM-ls6fh 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Llevo mirando tus videos desde hace poco, pero en menos que una semana empiezo mis estudios de informatica en la Universidad Tecnica de Berlin y estoy mas que agradecido a tu canal por compartir todo este conocimiento.

  • @srhadesito6714
    @srhadesito6714 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Me encantan tus videos!! Espero que sigas así, se nota cada vez una mejora en ellos!
    Una duda, quÃĐ monitor usas?
    Un saludo desde Madrid 😊

  • @george003
    @george003 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Me perdí un poco pero lo verÃĐ varias hasta entender, muy buena explicaciÃģn gracias BettaTech por este contenido espero se siga difundiendo.

  • @SoyRage
    @SoyRage 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Gracias ☚ïļ! Ahora ya podrÃĐ tener mÃĄs posibilidades para trabajar!!ðŸŒđ😍

  • @elalemanthebad
    @elalemanthebad 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Por favor, continÚa subiendo este tipo de videos. Saludos desde RepÚblica Dominicana.

  • @albertos8732
    @albertos8732 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Es la primera vez que veo los videos de tu canal y me encantaron, muchas felicidades !!!!

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Muchísimas gracias!!!!

  • @davidlucas8303
    @davidlucas8303 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +15

    Como todos los nodos de un arbol solo tienen un Único "padre", en la implementaciÃģn de la estructura de datos hubiera incorporado un atributo "parent: TreeNode" (que en el caso del nodo raiz seria vacio) y un mÃĐtodo recursivo que sea "getRouteToRoot( node: TreeNode)" donde dado un nodo nos devuelve el camino hacia la raiz. Así nos ahorramos un BFS y simplemente es ver cual es el Último ancestro comÚn entre los dos nodos!

    • @DuniC0
      @DuniC0 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

      Totalmente de acuerdo, una relaciÃģn desde el empleado a su jefe, en lugar de un jefe con una lista de empleados, mejorarÃĄ el rendimiento del algoritmo!

    • @johncerpa3782
      @johncerpa3782 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

      Y para llegar a los nodos dados, necesitas una bÚsqueda igual o no?

    • @DuniC0
      @DuniC0 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

      Buena pregunta @@johncerpa3782,
      Suponiendo que no te den directamente el nodo, sino el contenido (por ejemplo el nombre o el id del empleado), como en cualquier base de datos, necesitaríamos un índice que vincule el dato (contenido) con su nodo. La bÚsqueda en ÃĐstos índices podría hacerse en tiempo constante (p.e. con una tabla hash).

    • @johncerpa3782
      @johncerpa3782 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@DuniC0 Podría ser. Habría que tener en cuenta la complejidad en espacio de esa soluciÃģn porque ocuparías mucho mÃĄs, creo yo.

    • @camilopalacios7120
      @camilopalacios7120 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

      @@johncerpa3782 de hecho no, si hace precomputo de n nodos el hash table o el array de esos indices tambiÃĐn tendría el mismo espacio en memoria que es n, es decir lineal.

  • @diegollanespasos249
    @diegollanespasos249 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Justo el tipo de videos que he estado viendo para prepararme para mi entrevista tÃĐcnica de programaciÃģn.

  • @leow375
    @leow375 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muy buen video! Esta vez te pasaste! :)

  • @JonGonzalezGarrido
    @JonGonzalezGarrido 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    El problema de la soluciÃģn no es el coste computacional si no el coste de memoria. Si el ÃĄrbol es muy grande almacenamos demasiados datos. Una soluciÃģn mÃĄs Ãģptima sería sacar la profundidad de ambos e igualarlos en profundidad escalando a travÃĐs de sus padres en el mÃĄs profundo. Con ello no hay nada que almacenar y es ir comparando elementos de la misma profundidad hasta que coincidan

  • @luis96xd
    @luis96xd 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    ÂĄExcelente video Betta Tech! Aprendí bastante, Muchas gracias 😄
    Por fin pude entender la estructura de datos de los ÃĄrboles, y me gustÃģ conocer esa propiedad de que solo existe un camino entre cualquier par de nodos. Y que no es cíclico ðŸ˜Ū
    TambiÃĐn aprendí un poco mÃĄs de como se hacen los anÃĄlisis algorítmicos 😄
    AÚn tengo que repasar otras cosas ÂĄSaludos!

  • @marcjall
    @marcjall 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Super like! Muy bueno este tipo de videos.

  • @jorgeelieserramirezpena5669
    @jorgeelieserramirezpena5669 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Gracias por las explicaciones!

  • @gorkaelorduy6711
    @gorkaelorduy6711 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Genial. Un saludo y gracias por tus magníficas explicaciones.

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Gracias a ti!

  • @rusberlrosales1199
    @rusberlrosales1199 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    muy buen material, desde hoy te sigo, tambiÃĐn al holamundo, son los dos canales me parecen muestran verdadero contenido de provecho, mis felicitaciones.

  • @yamillanz6398
    @yamillanz6398 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente como siempre...

  • @patriciabonaldy9624
    @patriciabonaldy9624 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Hola! primero muchas gracias por subir este tipo de videos, es muy interesante, que opinas de resolver este tipo de ejercicios tipo arboles, usando recursividad?. Saludos desde Argentina

  • @programacionfia_ues1004
    @programacionfia_ues1004 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Siempre e pensado en hacer cursos de algÚn tema informÃĄtico, aunque actualmente no me siento tan preparado porque no tengo conocimientos tan profundos que digamos, pero mi objetivo al querer hacer esos vídeos es dar cursos de programaciÃģn o de temas informÃĄticos pero con buena calidad y gratis ya que yo e pasado por muchas dificultades por las cuales no puedo costearme cursos que a lo mejor me harían avanzar mÃĄs rÃĄpido en mi formaciÃģn aparte de lo que me da la universidad

    • @programacionfia_ues1004
      @programacionfia_ues1004 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Pero solo quiero decirte que a ti te veo con la capacidad de hacer un muy buen curso y ojalÃĄ fuera gratuito para ayudar a la comunidad a crecer y sin importar las limitantes econÃģmicas, espero leas este comentario y te animes a hacer cursos, de preferencia comienza con uno de estructuras de datos xd

  •  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muy buen video, saludos!

  • @javiergavilanmerida2133
    @javiergavilanmerida2133 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +24

    ancestor debe ser por defecto null, si te pasan como parÃĄmetro value1 el valor 34, no existe en el arbol y por lo tanto no existe ancestro comÚn :)

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +13

      Totalmente cierto! Error mío!

  • @msteroz
    @msteroz 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Me encanto tu video, Âŋpodrías hacer un vídeo recomendando libros o recursos en linea para aprender estructuras de datos?

  • @AlexGalo0
    @AlexGalo0 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    La rompes con estos videos, sos un crack, saludos desde Honduras!

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Gracias! Saludos!

  • @cristianmedina1834
    @cristianmedina1834 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Nos encanta que resuelvas problemas por eso los likes, por que no haces el problema del laberinto con el camino mÃĄs corto

  • @DuniC0
    @DuniC0 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Buenas, me ha encantado el vid.
    Ya lo han comentado antes, pero en mi opiniÃģn sería mÃĄs adecuado tener en cada empleado una referencia a su jefe en lugar de la lista de empleados del jefe. Obtener la soluciÃģn no sÃģlo sería lineal, sino que sería lineal respecto a las profundidades de ambos nodos que suele tender a ser logarítmica en funciÃģn al nÚmero de nodos.
    Un saludo.

  • @franciscojesusmartinezdura4748
    @franciscojesusmartinezdura4748 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Me gusta mucho esta serie 👏

  • @marcegon13
    @marcegon13 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola... estoy encantado de haberme suscripto... es muy enriquecedor escucharte... solo preguntarte en que lenguaje hiciste el ejercicio... felicitaciones, me estoy iniciando en programaciÃģn a mis 53 aÃąos y acÃĄ en Argentina hay que reinventarse... saludos

  • @DanielLozadaDev
    @DanielLozadaDev 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    creo que amo tu canal ðŸĨš

  • @rafamartinez9739
    @rafamartinez9739 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    muy buen aporte

  • @meronmeron866
    @meronmeron866 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Estuvo buenisimo la explicacion y el paso a paso, me ha aclarado varias dudas. Hablando de dudas, que paleta de colores usas? Y estarÃĄ disponible para vscode?

  • @ZzZz-dr7uq
    @ZzZz-dr7uq 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muy bueno, no entendi, todavia tengo que reforzar tendre que volver a ver el video hasta entenderlo a la perfeccion gracias.

  • @miguelalbertocalderon5902
    @miguelalbertocalderon5902 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    deberías colocarlo como un reto, es decir propones el ejercicio das unos días para responderlo escoges 3 de esas soluciones, las analizas y propones tu propia soluciÃģn así se hace mas dinÃĄmico. Pero me encantan este tipo de videos, espero ver mas.

  • @escobarhector4286
    @escobarhector4286 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente canal, soy nuevo suscriptor

  • @Dev403M
    @Dev403M 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Super video! Saludos! ðŸĪ—

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Muchas gracias!!!!

  • @danielespinola2636
    @danielespinola2636 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    me encanto el video. Yo lo que hubiese hecho es guardar la referencia del padre en la estructura del arbol, luego cuando me dan dos nodos lo que hago es recorrer el ÃĄrbol hasta encontrarlos. Una vez que tengo la referencia de cada nodo, lo que hago es preguntar por el valor de su padre y voy haciendo los siguientes pasos:
    a) Agarro el valor del nodo padre de A y comparo el valor con el nodo padre de B
    b) el que es mÃĄs grande (en valor) significa que esta mÃĄs abajo en la jerarquia, por ende, tengo que agarrar el padre de ese nodo (sería el abuelo para el nodo en cuestiÃģn) y preguntar su valor y vuelvo a repetir la pregunta de quien es mÃĄs grande
    C) el punto de quiebre sería cuando encuentro el mismo valor en los nodos padres (la soluciÃģn al problema) o encuentro directamente la raíz del ÃĄrbol (soluciÃģn del problema)
    un saludo y me encantan tus videos, siempre los miro y aprendo y/o recuerdo algunos temas :)
    pd: para hacer la soluciÃģn que dije es obvio que tengo que tener el ÃĄrbol ordenado sino no podría aplicarla. Muchas veces eso en las entrevistas no te aclaran eso,yo lo que hago siempre es suponerlo y aclararlo cuando doy la soluciÃģn

  • @freycrack5003
    @freycrack5003 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Me parece interesante quiero mÃĄs videos de este tipo

  • @juandiez263
    @juandiez263 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    EmpecÃĐ a estudiar programaciÃģn y no entiendo nada, pero me gusta. Podría estar viendo videos como ÃĐste. Espero que en algÚn momento entienda algo ^_^

  • @matiassantos4709
    @matiassantos4709 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hombre no nos agradezcas a nosotros, gracias a ti que nos despejas las inseguridades de como son las entrevistas de trabajo, sigue asi, saludos.

  • @sanguchet3646
    @sanguchet3646 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Al principio lo había pensado comparando cada ancestro de un array con el primero del otro, despuÃĐs el siguiente y asi, llendo de abajo hacia arriba y cuando encuentre uno igual cortamos el bucle, es casi lo mismo que se plantea en el vídeo, solo que el metiÃģ cÃģdigo para que sea mÃĄs ligero de procesar, pero son fors y whiles, asique sigue siendo O2x o O3x, si usas Python podrías implementar Numpy y sería aÚn mÃĄs rÃĄpido, ya que Numpy usa una especie de funciones especializadas en recorrer arrays

  • @jer0799
    @jer0799 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Muy buen vídeo, saludos desde MÃĐxico!!

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Gracias! 😊

  • @alextojar
    @alextojar 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Buen vídeo!

  • @jereok91
    @jereok91 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente broo

  • @allanjoseportillohernandez7925
    @allanjoseportillohernandez7925 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Que bien explica este man, nada que ver con mis catedraticos de universidad.

  • @impactvideos3799
    @impactvideos3799 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    ese algoritimo se puede mejorar muchisimo si aÃąades un atributo de profundidad y enves de partir desde el nodo raiz, partes desde cada nodo evaluando el padre y comparandolo con el otro siempre y cuando sean de la misma profundidad, en caso de que no sean de la misma profundidad priorizas en avanzar en el que tiene mayor profundidad hasta que sean iguales y asi ir comparando y asi te evitas recorrer todo desde nodo raiz y solo recorrer desde abajo hacia arriba.

  • @many29juan
    @many29juan 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Gracias por este hermoso video esto me resume un corte de este semestre en mi ing. lo chistoso es que el profe solo lee y no dan ganas de ver este tema.
    interesa mÃĄs y practique.

  • @juanfernandoramirez
    @juanfernandoramirez 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente video

  • @adolfex9309
    @adolfex9309 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Que gran video enserio necesitaba mÃĄs de este tipo eres una increíble persona sigue así!!

  • @jrerehs96
    @jrerehs96 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    ve la lista de problemas de codeforces o del ICPC :3
    esos estÃĄn bien hardcoreee!!!!
    Saludos :P

  • @jesusguirado9253
    @jesusguirado9253 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    siempre que veo arboles pienso en funciones recursivas creo que se podia hacer recursivamente y es mas optimo no tienes que recorer tantos nodos pero la forma de resolverlo aqui es mas sencilla de entender

  • @manulobato7962
    @manulobato7962 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Estaría bien que dejaras un GIT con el cÃģdigo por si alguien le quiere echar un vistazo. Buen video saludos.

  • @luisalvarez6375
    @luisalvarez6375 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Videos así hacen que me encante pasÃĄrmela todo el día en Hackerrank (â‰§â–―â‰Ķ)

  • @Manuel-wj1xs
    @Manuel-wj1xs 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Muy buen material. Estaría muy bien una serie sobre cÃģmo enfrentarse a una entrevista de trabajo real, con todas sus etapas.
    Gracias por el vídeo!

  • @santucigod
    @santucigod 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente contenido. 👌

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Gracias!!

  • @IngFrank-nt7yb
    @IngFrank-nt7yb 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Recorrería desde los nodos de entrada hasta la raíz, interceptaría los dos conjuntos de nodos resultantes y el primer elemento de la intercepciÃģn es el primer nodo en comÚn.

  • @MrNemq
    @MrNemq 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Sería bueno no llamar a normalize 3 veces, quizÃĄs guardarlo en una variable? Eso lo haría mucho mas rÃĄpido.

  • @inergarciarodriguez181
    @inergarciarodriguez181 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Es coste lineal en el caso de que se requiera saber el LCA una Única vez, en caso contrario se debería implementar un algoritmo mas optimizado que pre-calcule el LCA para cada par de nodos. Una soluciÃģn seria emplear el algoritmo de RMQ sobre un recorrido DFS

  • @MikiKiller69
    @MikiKiller69 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    me alegra mucho que leas los comentarios y los aceptes positivamente! yo fui uno de los que comentÃģ lo que dices al principio, pero con la explicaciÃģn si que me parece mÃĄs logico... buen video!

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Gracias! Poco a poco mejoramos :D

  • @bastiboydiaz7
    @bastiboydiaz7 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    creo que hubiera sido mejor implementar una busqueda por profundidad, de esta forma obtienes inmediatamente el camino desde la raiz al hijo, y no tienes que guardar los padres ni nada de eso

  • @jaredM_2710
    @jaredM_2710 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    No he visto la soluciÃģn.
    Pero segÚn yo, la soluciÃģn es almacenar el camino en una pila y luego revisar ambas pilas y ver en jerarquía cuÃĄl es el primer elemento comÚn que hay dentro de ellas. Podríamos hacerlo con recursividad y un if

  • @nikolam-dev
    @nikolam-dev 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Que tema usas de vim se ve genial ! 😍

  • @protodibujante
    @protodibujante 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Joder que bueno estÃĄ Vsauce ahora que empezÃģ a hablar espaÃąol

  • @alguien9003
    @alguien9003 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola me gustan tus videos, tengo una duda existencial, siento que no soy nada malo programando, no soy un sÚper crack, pero tengo esa lÃģgica que se necesita para ello. Estoy en tercer aÃąo de Ing. de Sistemas (Bachiller), y me pongo a pensar si serÃĄ mejor dejar la Uni en el olvido para comenzar a practicar y practicar programaciÃģn. soy de Costa Rica y tengo 35 aÃąos, por eso siento a veces que debería de dejar la Uni y comenzar a picar cÃģdigo, ÂŋQuÃĐ recomiendas?

  • @vhspiceros
    @vhspiceros 7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Hola Martin, esta genial el video, pero me queda una duda, en general estas estructuras se tienen los nodos hijos como Left y Right.. o estoy equivocado.. Saludos desde Chile.

  • @Jocker88
    @Jocker88 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Interesante vídeo, me encantan estos ejercicios que pese a no ser complicados requieren de pensar un par de minutos (si no se tiene mucha experiencia como yo). Por otro la do me gustaría hacerte una pregunta, ÂŋQuÃĐ opinas del uso de break? He visto que lo usaste en el else (minuto 9 aprox), y siempre he leído que los break rompen la ejecuciÃģn de manera abrupta y que se desaconseja su uso, de hecho creo que en Python ni siquiera existe, me gustaría saber tu opiniÃģn como profesional, yo como Junior leo mucho pero al final no se muy bien lo que creer.
    Un saludo y enhorabuena por tu trabajo con el canal, es muy divertido y educativo.

    • @javiergavilanmerida2133
      @javiergavilanmerida2133 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Desde mi punto de vista no es aconsejable usarlo si lo puedes evitar. Normalmente si encuentras un break ocurre uno de 2 casos posibles:
      Caso #1: El break estÃĄ seÃąalando una condiciÃģn sencilla de salida de un bucle, y por tanto la condiciÃģn del "if" que lleva al break debería estar situada en la condiciÃģn del while o for
      Caso #2: El break estÃĄ seÃąalando una condiciÃģn compleja de salida de un bucle, lo cual implica que al menos parte del bucle es complejo, y por tanto todo el bucle debería salir a una funciÃģn a parte y usarse return en lugar de break (esto te permite identificar rÃĄpidamente la salida con resultado, que es el return dentro del bucle, de la salida sin resultado, que serÃĄ el return fuera del bucle, normalmente ambos return cerca entre si y al final de la funciÃģn).
      Sin embargo, no es que estos 2 casos que yo comento sean definitivos, aÚn hoy día hay debate sobre esto. Te adjunto un enlance a un comentario de stackoverflow que seÃąala por quÃĐ no estÃĄ de acuerdo con el uso de break SI SE PUEDE EVITAR (nada es definitivo):
      es.stackoverflow.com/a/132112
      Al final la cuestiÃģn estÃĄ en como conseguir que el flujo sea fÃĄcil de seguir, o lo que es lo mismo, el cÃģdigo sea fÃĄcil de leer y entender. Un return sale directamente de la funciÃģn, por lo tanto no hay realmente problemas para seguir el flujo, sin embargo un break solo termina el bucle, por lo tanto vas a tener que saltar de una línea dentro del bucle a la línea final del bucle (que es mÃĄs difícil de identificar) para poder continuar.
      Yo antes que el uso de break veo mejor el uso de continue, ya que el inicio de un bucle es mÃĄs fÃĄcil de identificar y bien usado continue puede reducir el nivel de indentaciÃģn necesario:
      Pasaríamos de esto:
      for( int i = 0 ; i

    • @Jocker88
      @Jocker88 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      ​@@javiergavilanmerida2133 Muchas gracias por la explicaciÃģn, seguro que a mÃĄs de uno le viene genial, yo en ese sentido la "teoría" me la sÃĐ y mi opiniÃģn es que si usas un break; es que no has pensado lo suficiente en la lÃģgica del algoritmo en cuestiÃģn ya que para mi un break; es el Último recurso ya que se puede crear un cÃģdigo sin su uso de forma mucho mÃĄs limpia (como comentas con la extracciÃģn a mÃĐtodo y el uso de return o el uso de condiciones en otros casos). Simplemente me hubiera gustado saber el por que pone ese break; ahí BettaTech y su opiniÃģn, ya que como comentas, no hay nada establecido y puede que haya gente que quiera usarlo, yo como Junior no me echarÃĐ las manos a la cabeza aÚn que a mi personalmente no me guste.
      OjalÃĄ hubiera mÃĄs gente como tu en internet con ganas de dar explicaciones tan detalladas, y gracias por el enlace a la discusiÃģn de stackoverflow, no conocía ese debate.
      Un saludo y nuevamente, gracias.

  • @reydavid7300
    @reydavid7300 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Buen video oye cÃģmo se llama la extensiÃģn de colores que tienes?

  • @Phoenicoperus7676
    @Phoenicoperus7676 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola buen dia justo el problema que mencionas lo pusieron en HackerRank, lo Resolvi con MS SQL.

  • @JAlbertSG
    @JAlbertSG 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Si tuvieramos datos repetidos en el node.val no funcionaria, yo recomendaria cambiar el algoritmo a hacer comparaciones de clases en vez de valor al igual que en el hashmap no guardar el children.val, si no la instancia de la clase, no estoy 100% de como usa el hasheo de objetos en js pero en python es posible hacerlo

  • @DiegoGonzalez-ju2xh
    @DiegoGonzalez-ju2xh 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Puede hablar de nodos? Para junior :D

  • @ivnaqn8521
    @ivnaqn8521 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Que esquema de color usas en vim?

  • @supertren
    @supertren 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Porque luego los developers estamos a diario haciendo algoritmos e invirtiendo ÃĄrboles binarios .... en fin .... Hiring is broken

  • @satoarcadego5568
    @satoarcadego5568 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Saludos subs desde los 10k xd

  • @basurabasura6735
    @basurabasura6735 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Buenas, tengo una duda. En caso de que en el ejemplo se cojan 10 y 5, el primer ancestro comÚn que darÃĄ la funciÃģn que creaste no sería 5 ?. De ser así estaría correcto? no tendría que dar 2 como primer ancestro comÚn ya que el 5 sobre el 5 no sería un ancestro sino el mismo ?. Un saludo y mil gracias :)

  • @TheQerde
    @TheQerde 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Creo que el bfs no haria falta. Si se le aÃąade el puntero de un hijo al padre. Asi poder hacer directamente el backtrace. Lo que significa coste logaritmico (por niveles de arbol)

  • @PabloRodriguez-kr7et
    @PabloRodriguez-kr7et 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    si se me viene la soluciÃģn a la mente justo despuÃĐs de terminar de explicar el problema significa que no estoy tan perdido XD

  • @ogasdiaz
    @ogasdiaz 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Sería interesante que hagas un video explicando la soluciÃģn logarítmica al mismo problema

    • @salvadorcano553
      @salvadorcano553 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Estableciendo que fuera posible y que lograramos encontrar una soluciÃģn con ese coste

  • @javiergavilanmerida2133
    @javiergavilanmerida2133 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    El computeRoute yo lo habría hecho por llamadas recursivas, así matas 2 pÃĄjaros de un tiro (bÚsqueda e identificaciÃģn de la ruta):
    if( root === objetive ) {
    return [root];
    }
    let route;
    root.children.forEach(function(child) {
    let childRoute = computeRoute( objetive, child );
    if( childRoute ) {
    route = [root, ...childRoute];
    }
    });
    return route;

    • @DuniC0
      @DuniC0 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Yo tambiÃĐn soy partidario de los algoritmos recursivos, pero hay que tener en cuenta las limitaciones de la pila

    • @javiergavilanmerida2133
      @javiergavilanmerida2133 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@DuniC0 ​ Por supuesto, por eso es muy importante conocer el contexto. Pero trabajando con un ÃĄrbol no se debería poder llegar a dicho límite fÃĄcilmente :)
      Por ejemplo, usando mi navegador actual (edge chromium) y la siguiente funciÃģn (similar a la que pongo en cuanto a gasto de la pila):
      function rec(i){
      if( i > 8500) // límite/condiciÃģn de salida
      return [i];
      let arr = [i, ...rec(++i)];
      console.log(i);
      return arr;
      }
      Con una pila de 9000 llamadas ya falla, sin embargo para hacerlo de 8500 todavía no hay problema. Dicho de otro modo, este algoritmo funcionaría para arboles con una altura de hasta 8500 niveles, en cuyo caso ya hablaríamos de arboles TAN ineficientes que si por cualquier motivo se llega al limite de la pila, sería mÃĄs culpa del ÃĄrbol en sí que del propio algoritmo xD
      Para que nos hagamos una idea, usando la estructura de ÃĄrbol mínima ( 1 nodo padre solo tiene 2 nodos hijos), con una altura de 100 niveles, si el ÃĄrbol estÃĄ perfectamente balanceado, se tendría capacidad para almacenar mÃĄs de 1.000.000.000.000.000.000.000.000.000.000 (10^30) nodos xD

  • @johncerpa3782
    @johncerpa3782 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    MÃĄs videos así

  • @veoquenoesunproblema
    @veoquenoesunproblema āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Jaja, ese problema estÃĄ bien Bravo jaja

  • @vitillobandolero8668
    @vitillobandolero8668 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +10

    Este tipo de vídeos me vienen de maravilla, ya que estoy acabando segundo de DAM. Aunque no voy a hacer entrevista de ingeniero, no estÃĄ de mÃĄs saber de todo

    • @paf_106
      @paf_106 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Yo tambieen, en quÃĐ instituto lo estÃĄs haciendo?

    • @miguelfdez9098
      @miguelfdez9098 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@paf_106 Que haces aqui 😂😂

    • @paf_106
      @paf_106 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@miguelfdez9098 jajajaja pasaba por aquí

    • @paf_106
      @paf_106 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@miguelfdez9098 sigues este canal?

    • @miguelfdez9098
      @miguelfdez9098 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@paf_106Me acabo de suscribir, le veia de hace un tiempo.

  • @Norhther
    @Norhther 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Esto se puede hacer en O(log n) en el mejor caso

  • @pellax
    @pellax 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Yo lo que tenía pensado hacer es ir bajando los niveles del ÃĄrbol hasta llegar a un nodo que entre sus hijos no estuviera los dos nodos citados aunque ahora que lo pienso quizÃĄs no sea muy eficiente. Buen vídeo para recordar los recorridos de ÃĄrboles.

    • @BettaTech
      @BettaTech  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      No te mentire, es lo que hice cuando en su momento estuve en la entrevista esta 😂 Lo que hice fue hacer un bfs, y por cada nodo que visitaba hacia otro bfs buscando ambos nodos. Cuando encontraba el primer nivel donde ya no encontrabana los dos, bingo. Pero claro eso a la practica podia ser cuadratico

    • @pellax
      @pellax 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@BettaTech Gracias, es un gran consuelo, que yo no soy de computaciÃģn.

  • @maxir5009
    @maxir5009 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    ReciÃĐn estoy aprendiendo a programar porque es algo que siempre quise aprender pero la verdad ya me estÃĄn dando miedo las entrevistas tÃĐcnicas :(

  • @WhileTrueThenDream
    @WhileTrueThenDream 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    En una entrevista me preguntaron por los 'trees' la respuesta en mi cabeza...' I hope you mean 'Linux device trees' :-S
    Hehehe. Hace mucho que no veía uno...

  • @CragCode
    @CragCode 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    En python ayudaría a la resoluciÃģn del problema los conjuntos.

  • @brunococcetta
    @brunococcetta 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Tengo una duda, cual es el lenguaje que estas utilizando en el video?