jueves, 19 de junio de 2025

Two Sum | ¿Dos Sumas? | LeetCode | Hasta encontrar trabajo 1

 A decir verdad no sé si exista una traducción literal para "Two Sum", pero bueno, resolvamos esto de una vez por todas con una explicación sencilla, en español y sin dar tanta vuelta a las explicaciones científicas, técnicas o intelectuales porque ya saben que a nosotros los ingenieros nos gusta andar de "pensantes" en todo momento.

Problema (original):

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

 Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Problema (traducido por mí):

Dado un arreglo de enteros y un entero designado, obtener las posiciones en el arreglo de los dos números que sumados deben dar como resultado el entero designado.

Es decir que si tienes un arreglo [2, 7, 11, 15] y tu designado es el 9, entonces tus números que sumados dan esa cantidad son el 2 y el 7, los cuales se encuentran en las posiciones [0] y [1] de nuestro arreglo.

Hay que dar por hecho que en todo momento el entero designado tendrá una solución implícita en el arreglo, así que no te preocupes de poner "validaciones" de ningún tipo, solo asegúrate de buscar la respuesta correcta en el menor tiempo posible.

La respuesta entonces sería [0, 1] o [1, 0], finalmente no importa el orden.

Otro ejemplo:


Sermón:

La lógica de esto no es la gran cosa, en realidad es muy sencillo solo colocar un par de ciclos y finalmente encontrarás la respuesta, el verdadero reto es que tu desarrollo sea rápido, preciso y totalmente funcional.
En programación existen 'N' caminos para llegar al mismo destino, igual que en la vida, así que haz tu mejor esfuerzo, en realidad si puedes resolver un problema de una manera, habrás aprendido algo, aunque no sea lo mejor de lo mejor, habrás llegado al resultado esperado y puedes seguir mejorando siempre.

Lógica:

1.- Recorrer todo el arreglo con un ciclo
2.- Comprobar cada número del arreglo sumado con el resto para encontrar la respuesta
3.- Validar que efectivamente encontramos la respuesta
4.- Retornar la respuesta

Programación:

1.- Coloqué un ciclo for que va desde la posición 0 (variable x) hasta la última del arreglo
2.- Dentro de ese ciclo hice otro que comenzará desde una posición adelante de nuestro primer ciclo (variable y = x + 1) y de igual manera terminará hasta la última posición del arreglo.
3.- Ahora sí, dentro del segundo ciclo comencé a validar si la suma del arreglo en la posición 'x' (ARREGLO[x]) y el arreglo en la posición 'y' (ARREGLO[y])
4.- Una vez encontrado el valor, retorno las posiciones 'x' y 'y'

¿Complejo?, no realmente, ¿óptimo?, no realmente, pero sí funcional, hay otras formas de realizar esta búsqueda más rápidamente, utilizando un estructuras de datos más veloces, pero para aprender eso primero tienes que pasar por esto, y practicar hasta mejorar tanto que tú mismo puedas criticar tu propio código.

Resultado:



¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste

martes, 17 de junio de 2025

¡Los extrañé y regresé!

Los extrañé, así que regresé. Tendré una nueva dinámica medio parecida a lo que venía haciendo desde antes de comenzar con todo esto de la IA y de mis actividades de regalarles el código, en realidad son buenas noticias porque probablemente esto no me tome demasiado tiempo, pero sí les regale mucho código a ustedes.




Esta será una nueva sección a la cual llamaré: Resolviendo problemas hasta conseguir otro trabajo, actualmente y desde que inicié el blog tengo un trabajo como desarrollador de software, soy una persona realmente enfocada y trato de mejorar siempre.

La justificación de esto es la siguiente, tengo trabajo claro que sí, pero disfrutaría muchísimo tener la oportunidad de ejercer esta profesión tan espectacular como lo es el desarrollo de software, ya sea desarrollando o liderando proyectos.

Disfruto mucho de esto y espero que sea de su agrado leer entradas de este tipo, igual próximamente les estaré compartiendo resultados, avances de mis entrevistas y quizá alguno que otro problema. También me gustaría compartirles algunos consejos respecto a lo laboral y a lo no tan laboral que desde luego tienes que enfrentar antes de conseguir trabajo, durante tu proceso de recién egresado, principiante buscando un trabajo, proceso de entrevistas y contratación. 

NO TOCARÉ TEMAS MONETARIOS, porque lo último que quiero es que les vaya mal por estar buscando el trabajo soñado, bien pagado y fácil, ningún trabajo así es fácil de conseguir pero claro que sí es posible de lograr, estudiando, practicando y obviamente desarrollando.

Todo el código que aparece aquí es de ustedes y para ustedes, links directos en todo el blog, si alguno se rompe háganmelo saber en los comentarios.

El día de hoy hay ningún programa de regalo, pero les comparto la página en la que estaré resolviendo problemas.


LINK: https://leetcode.com

Se registran y se ponen a programar si es de su agrado, suerte y ¡éxito!


PD: Agregué un nuevo menú, a ver qué tal nos va en este proceso, creo que por el momento agregaré los programas que vaya haciendo y eventualmente iré subiendo entradas sobre eso.