Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

179
Vistas
2 preguntas sobre una solución Lados iguales de una matriz

Pregunta: Tome una matriz con números enteros y encuentre un índice N donde la suma de los números enteros a la izquierda de N sea igual a la suma de los números enteros a la derecha de N . Si no hay un índice que haga que esto suceda, devuelve -1. Digamos que le dan la matriz {1,2,3,4,3,2,1} : su función equalsides() devolverá el índice 3 , porque en la tercera posición de la matriz, la suma del lado izquierdo de la index ( {1,2,3} ) y la suma del lado derecho del índice ( {3,2,1} ) ambos son iguales a 6 .

Una solución de trabajo que encontré en línea es

 function findEvenIndex(arr) { var left = 0, right = arr.reduce(function(pv, cv) { return pv + cv; }, 0); for(var i = 0; i < arr.length; i++) { if(i>0) { left =left+ arr[i-1]; } right =right- arr[i]; if(left == right) return i; } return -1; }

No puedo explicar las siguientes dos líneas de código, ¡cualquier ayuda sería apreciada!

  1. ¿Por qué escribir if i>0 en la primera línea del bucle for?
  2. ¿Por qué escribir i-1 en la línea left = left + arr[i-1]
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Bueno, se requiere if(i>0) , porque las matrices no pueden tener índices negativos en JS. y se requiere i-1 , porque desea agregar elementos a la izquierda de la posición de equilibrio al elemento de la izquierda, sin incluir la posición de equilibrio. Aunque creo, esta es una mejor solución:

 function findEvenIndex(arr){ let left = 0, right = arr.reduce( (a,b) => (a+b), 0); for(let i in arr){ right -= arr[i]; if(right == left) return i; left += arr[i]; } return -1; }

Podría decirse que es el mismo código, pero solo tiene una instrucción if y es un poco más evidente. Espero que esto haya ayudado :-)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda