Mis respetos hacia usted. Muy buen video, les dejo mi solucion en python: class Solution: def rotate(self, matrix: List[List[int]]) -> None: """ Do not return anything, modify matrix in-place instead. """ largo = len(matrix) aux_list = [] for i in range(largo): for j in range(largo): tupla_aux = (i,j) if tupla_aux not in aux_list: aux = matrix[i][j] matrix[i][j]=matrix[j][i] matrix[j][i]=aux tupla=(i,j) aux_list.append(tupla) tupla=(j,i) aux_list.append(tupla) for i in range(largo): matrix[i] = matrix[i][::-1]
Estructura de datos, una base poderosa para manipular información, les recomiendo ver el tema y ejemplos como este son parte de su estudio. invertir la última fila, como la primer columna, decrementar ciclos anidados, un primer for para fila y el otro para columna.
Hola Jorge!!, soy programador igual que vos. Y tengo esa ambición motivadora de llegar alcanzar de trabajar en una empresa de tecnología de punta. Pero me doy cuenta que siempre estoy detrás de las tecnologías. ¿cómo puedo hacer para estar al tanto de las tecnologías y procesos de trabajo en vanguardia y valorados?, desde ya te agradezco.
Tengo una pregunta,espero puedas resolverla)=, soy mexicano y ya que tenga la suficiente experiencia quisiera irme a Estados Unidos a trabajar, ¿podria trabajar en una empresa como amazon usa siendo mexicano?
@@latincoder muchas gracias amigo, tengo 17 y hice un examen cuando estaba más chico, crees que mi nivel a2 de ingles con certificado me sirva para buscar trabajo ya que este en la universidad?
No amigo, no hago paginas web desde hace años ya q no hago paginas me dedico mas a servicios em la nube. De tecnologia soy algo agnostico, si ves mi contenido me he cambiado varias veces
@@latincoder perfecto, vi tu contenido sobre como responder en un entrevista en apple, amazon, facebook.. Tu llevas el mismo rol en amazon donde trabajas actualmente??
@@luiseduardoariasperez8389 en amazon El rol que tenia se llama software development engineer, y en Microsoft entre como software engineer 2. El rol es casi lo mismo con otro nombre.pero regularmente lo encuentras enas vacantes como software engineer. El titulo no se atiene a un stack como tal, depende de q proyecto trabajes. Tu rol es mas bien resolver problemas con desarrollo de software
@@latincoder ok muy es muy importante saber esa diferencia, gracias .. Yo soy desarrollador web frontend. Que tipo de tecnologias me recomiendas para abarcar en el area de software enginer? SABES SI En las grandes empresas ya mensionadas se admiten desarrolladores fullstack de manera comun?? O el proceso es mas complejo para desarrolladores web?
@@luiseduardoariasperez8389 hasta donde yo se, casi no se usa la nomenclatura front, back, o fullstack, es menos comun en El entorno donde me muevo, tu puedes ser software engineer y trabajar un dia en frontend y El otro dia en back. El rol no es q seas especialista en eso, es q analizes El problema, entiendas Las reglas de negocio, implementarlas, planear, mantener, desarrollar cosas nuevas que atiendan Al producto con El que trabajas. No es como un trabajo que te dicen que hay q hacer la pagina del cliente y trabajes en El front o en El back, en sistemas empresariales tu trabajo implica entregar una solucion completa, y bien probada, El testing x ejemplo tambien es parte del rol.
A mi me cayó la locha (por fin lo pude entender) cuando lo miré desde la perspectiva de que una matriz n x n es un arreglo de arreglos. Tarde 5 horas en resolverlo pero disfruté un montón ya que tenia muchos años sin programar y aproveché para que me sirviera de aproximación a la programación funcional y a javascript. Por favor Jorge no leas el siguiente texto porque es un pequeño _spoiler_ para resolver el problema. [1,2,3] Rotación en el sentido de [7,4,1] [4,5,6] -----------------------------------------> [8,5,2] [7,8,9] las agujas del reloj [9,6,3] ____________________________________________________________________________________ let matriz = [[1,2,3,],[4,5,6],[7,8,9]]; longitudMatriz = matriz.length - 1; //Muestra la matriz original matriz.map(elemento => { document.write("[ " + elemento + " ]"); }); //Muestra los elementos como se quiere que queden al final matriz.map((subArreglo, indice) => { document.write("") subArreglo.map((elemento, subIndice) => { document.write(matriz[longitudMatriz - subIndice][indice]); }) });
Amigo te quiero hacer 2 consultas. 1.- Como fue tu proceso o que es lo que haz hecho para poder lograr el nivel de ingles que tienes. Puedes contarme un poco sobre eso? 2.- hasta que edad crees que es el limite de tiempo para aprender a programar? En mi caso tengo 32 años y quisiera aprender programacion y desarrollo web, segun tu experiencia y viendo que hay personas que empiezan a muy temprana edad, crees que aún estoy a tiempo, siendo bien objetivo y honesto? En caso de que si recomiendas un bootcamp, para luego buscar empleo en un pais anglosajon? he oido hablar que en esos programas vas de lleno a la materia pura y dura que usarás en un trabajo. Gracias y que estés bien.
@@baezmoler3668 1. Para mejorar el ingles, practica con un gringo, en la CDMX luego hay quien le puedes pagar por hora, te ves en un cafe y le pagas por conversar contigo una o dos horas, pidele que te corrija y te de trucos, frases, etc. Aun asi, yo por ejemplo llevo 8 anyos viviendo en EU usando el ingles diario y no puedo decir que mi ingles es fluido. Mientras tengas algo aceptable, puedes aplicar a entrevistas. 2. Honestamente tener 32 anyos y empezar en esto no esta mal, lo que siento que si esta muy dificil es que puedas competir para un trabajo en EU, la barra es muy alta y no es nada mas grindear leetcode, sino tener la experiencia (o pedigree) suficiente para llamar la atencion de un reclutador y que te consiga una entrevista. Mi consejo es que estudies algunos cursos en linea, consigas un trabajo en tu pais y ya teniendo uno o dos anyos trabajando, empieces a contactar reclutadores de empresas en EU para ir viendo que piden e irte preparando. De cualquier forma te garantizo que probablemente el formato de las entrevistas cambie para entonces y ya no hagan preguntas tipo leetcode. (Yo soy staff swe en Lyft y ya solo hacemos preguntas tipo leetcode en la phone screen).
Dejo mi intento de solución en PSEUDOCÓDIGO. Claves, mirar el cubo en caras y pensar en posiciones relativas para poder usar recursividad. funcion rotar(matriz, columnaInicio, columnaFin, profundidad) filaActual = columnaInicio * profundidad anchoMatriz = columnaFin - columnaInicio //Recorrer columnas principales para detonar rotación Para columnaActual*profundidad mientras columnaActual
que ondas latincoder ... hice una solución espero le pueda echar un vistazo... la solución esta en c#. no estaría mal que hicieras un vídeo analizando las soluciones que te hayan compartido. saludos... private static void Rotar(int[,] matriz) { if (matriz.GetLength(0) != matriz.GetLength(1)) throw new Exception("La matriz no es cuadrada"); int dimencion = matriz.GetLength(0); int nivel = dimencion / 2; for (int y = 0; y < nivel; y++) for (int x = 0; x < ((dimencion - (y * 2)) - 1); x++) Desplazar(matriz, y, y, 0, 0, y); } private static void Desplazar(int[,] matriz, int y, int x, int valorant = 0, int vuelta = 0, int nivel = 0) { int valor; int y2, x2; y2 = y; x2 = x; int dimencion = matriz.GetLength(0);
if (y == nivel && x < (dimencion - nivel) - 1 && vuelta == 0) x2++; else if (x == ((dimencion - nivel) - 1) && y < ((dimencion - nivel)) - 1 && vuelta < 2) { y2++; vuelta = 1; } else if (x > nivel && y == ((dimencion - nivel)) - 1) { x2--; vuelta = 2; } else { y2--; vuelta = 3; } if (y2 < nivel) return; valor = matriz[y2, x2]; if (valorant > 0) matriz[y2, x2] = valorant; else matriz[y2, x2] = matriz[y, x]; Desplazar(matriz, y2, x2, valor, vuelta, nivel); }
Mis respetos hacia usted. Muy buen video, les dejo mi solucion en python:
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
largo = len(matrix)
aux_list = []
for i in range(largo):
for j in range(largo):
tupla_aux = (i,j)
if tupla_aux not in aux_list:
aux = matrix[i][j]
matrix[i][j]=matrix[j][i]
matrix[j][i]=aux
tupla=(i,j)
aux_list.append(tupla)
tupla=(j,i)
aux_list.append(tupla)
for i in range(largo):
matrix[i] = matrix[i][::-1]
Espectacular tu solución con python!
en donde podemos encontrar los ejercicios pero en latino ??
Cuando es el siguiente Live Stream?
Estructura de datos, una base poderosa para manipular información, les recomiendo ver el tema y ejemplos como este son parte de su estudio. invertir la última fila, como la primer columna, decrementar ciclos anidados, un primer for para fila y el otro para columna.
Brother pa cuando video nuevo? Saludos
Parecía fácil en un inicio, pero fue muy complejo
Me interesa tu enfoque en la programación , que tecnología manejas ? , La web me parece algo engorroso y abrumador
Hola Jorge!!, soy programador igual que vos. Y tengo esa ambición motivadora de llegar alcanzar de trabajar en una empresa de tecnología de punta. Pero me doy cuenta que siempre estoy detrás de las tecnologías. ¿cómo puedo hacer para estar al tanto de las tecnologías y procesos de trabajo en vanguardia y valorados?, desde ya te agradezco.
Es un dolor de cabeza las matrices, pero de esto se trata la programación, crear el algoritmo hasta encontrar la solución
era solo un cambio de posiciones de la matriz, pero solo matematica pura
Tengo una pregunta,espero puedas resolverla)=, soy mexicano y ya que tenga la suficiente experiencia quisiera irme a Estados Unidos a trabajar, ¿podria trabajar en una empresa como amazon usa siendo mexicano?
Siendo Mexicano si tienes titulo universitario si, siempre y cuando siga existiendo la visa TN
@@latincoder muchas gracias amigo, tengo 17 y hice un examen cuando estaba más chico, crees que mi nivel a2 de ingles con certificado me sirva para buscar trabajo ya que este en la universidad?
Hola Jorge una consulta, tu eres progragamador de paginas web, que tipo de tecnologias dominas ?
No amigo, no hago paginas web desde hace años ya q no hago paginas me dedico mas a servicios em la nube. De tecnologia soy algo agnostico, si ves mi contenido me he cambiado varias veces
@@latincoder perfecto, vi tu contenido sobre como responder en un entrevista en apple, amazon, facebook.. Tu llevas el mismo rol en amazon donde trabajas actualmente??
@@luiseduardoariasperez8389 en amazon El rol que tenia se llama software development engineer, y en Microsoft entre como software engineer 2. El rol es casi lo mismo con otro nombre.pero regularmente lo encuentras enas vacantes como software engineer. El titulo no se atiene a un stack como tal, depende de q proyecto trabajes. Tu rol es mas bien resolver problemas con desarrollo de software
@@latincoder ok muy es muy importante saber esa diferencia, gracias .. Yo soy desarrollador web frontend. Que tipo de tecnologias me recomiendas para abarcar en el area de software enginer? SABES SI En las grandes empresas ya mensionadas se admiten desarrolladores fullstack de manera comun?? O el proceso es mas complejo para desarrolladores web?
@@luiseduardoariasperez8389 hasta donde yo se, casi no se usa la nomenclatura front, back, o fullstack, es menos comun en El entorno donde me muevo, tu puedes ser software engineer y trabajar un dia en frontend y El otro dia en back. El rol no es q seas especialista en eso, es q analizes El problema, entiendas Las reglas de negocio, implementarlas, planear, mantener, desarrollar cosas nuevas que atiendan Al producto con El que trabajas. No es como un trabajo que te dicen que hay q hacer la pagina del cliente y trabajes en El front o en El back, en sistemas empresariales tu trabajo implica entregar una solucion completa, y bien probada, El testing x ejemplo tambien es parte del rol.
A mi me cayó la locha (por fin lo pude entender) cuando lo miré desde la perspectiva de que una matriz n x n es un arreglo de arreglos. Tarde 5 horas en resolverlo pero disfruté un montón ya que tenia muchos años sin programar y aproveché para que me sirviera de aproximación a la programación funcional y a javascript. Por favor Jorge no leas el siguiente texto porque es un pequeño _spoiler_ para resolver el problema.
[1,2,3] Rotación en el sentido de [7,4,1]
[4,5,6] -----------------------------------------> [8,5,2]
[7,8,9] las agujas del reloj [9,6,3]
____________________________________________________________________________________
let matriz = [[1,2,3,],[4,5,6],[7,8,9]];
longitudMatriz = matriz.length - 1;
//Muestra la matriz original
matriz.map(elemento => {
document.write("[ " + elemento + " ]");
});
//Muestra los elementos como se quiere que queden al final
matriz.map((subArreglo, indice) => {
document.write("")
subArreglo.map((elemento, subIndice) => {
document.write(matriz[longitudMatriz - subIndice][indice]);
})
});
No espoilers!!!! Jajajja pero bien bro lo lograste!!!🦾💪
Amigo te quiero hacer 2 consultas.
1.- Como fue tu proceso o que es lo que haz hecho para poder lograr el nivel de ingles que tienes. Puedes contarme un poco sobre eso?
2.- hasta que edad crees que es el limite de tiempo para aprender a programar? En mi caso tengo 32 años y quisiera aprender programacion y desarrollo web, segun tu experiencia y viendo que hay personas que empiezan a muy temprana edad, crees que aún estoy a tiempo, siendo bien objetivo y honesto? En caso de que si recomiendas un bootcamp, para luego buscar empleo en un pais anglosajon? he oido hablar que en esos programas vas de lleno a la materia pura y dura que usarás en un trabajo. Gracias y que estés bien.
Espero que responda esta pregunta, muchos estamos en la misma situacion.
@@baezmoler3668
1. Para mejorar el ingles, practica con un gringo, en la CDMX luego hay quien le puedes pagar por hora, te ves en un cafe y le pagas por conversar contigo una o dos horas, pidele que te corrija y te de trucos, frases, etc. Aun asi, yo por ejemplo llevo 8 anyos viviendo en EU usando el ingles diario y no puedo decir que mi ingles es fluido. Mientras tengas algo aceptable, puedes aplicar a entrevistas.
2. Honestamente tener 32 anyos y empezar en esto no esta mal, lo que siento que si esta muy dificil es que puedas competir para un trabajo en EU, la barra es muy alta y no es nada mas grindear leetcode, sino tener la experiencia (o pedigree) suficiente para llamar la atencion de un reclutador y que te consiga una entrevista. Mi consejo es que estudies algunos cursos en linea, consigas un trabajo en tu pais y ya teniendo uno o dos anyos trabajando, empieces a contactar reclutadores de empresas en EU para ir viendo que piden e irte preparando. De cualquier forma te garantizo que probablemente el formato de las entrevistas cambie para entonces y ya no hagan preguntas tipo leetcode. (Yo soy staff swe en Lyft y ya solo hacemos preguntas tipo leetcode en la phone screen).
Hola Jorge, me gusta tu canal.
Hice esta solución con un amigo:
class Solution {
public void rotate(int[][] matrix)
{
int aux=0;
int n = matrix.length;
//Matriz transpuesta
for(int i =0; i
Dejo mi intento de solución en PSEUDOCÓDIGO. Claves, mirar el cubo en caras y pensar en posiciones relativas para poder usar recursividad.
funcion rotar(matriz, columnaInicio, columnaFin, profundidad)
filaActual = columnaInicio * profundidad
anchoMatriz = columnaFin - columnaInicio
//Recorrer columnas principales para detonar rotación
Para columnaActual*profundidad mientras columnaActual
Parece ser una matriz traspuesta en espejo.
que ondas latincoder ... hice una solución espero le pueda echar un vistazo... la solución esta en c#. no estaría mal que hicieras un vídeo analizando las soluciones que te hayan compartido. saludos...
private static void Rotar(int[,] matriz)
{
if (matriz.GetLength(0) != matriz.GetLength(1))
throw new Exception("La matriz no es cuadrada");
int dimencion = matriz.GetLength(0);
int nivel = dimencion / 2;
for (int y = 0; y < nivel; y++)
for (int x = 0; x < ((dimencion - (y * 2)) - 1); x++)
Desplazar(matriz, y, y, 0, 0, y);
}
private static void Desplazar(int[,] matriz, int y, int x, int valorant = 0, int vuelta = 0, int nivel = 0)
{
int valor;
int y2, x2;
y2 = y;
x2 = x;
int dimencion = matriz.GetLength(0);
if (y == nivel && x < (dimencion - nivel) - 1 && vuelta == 0)
x2++;
else if (x == ((dimencion - nivel) - 1) && y < ((dimencion - nivel)) - 1 && vuelta < 2)
{
y2++;
vuelta = 1;
}
else if (x > nivel && y == ((dimencion - nivel)) - 1)
{
x2--;
vuelta = 2;
}
else
{
y2--;
vuelta = 3;
}
if (y2 < nivel)
return;
valor = matriz[y2, x2];
if (valorant > 0)
matriz[y2, x2] = valorant;
else
matriz[y2, x2] = matriz[y, x];
Desplazar(matriz, y2, x2, valor, vuelta, nivel);
}
fb