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

389
Vistas
Lados iguales de una matriz en JS

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, devuelva - 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 índice ({1,2,3}) y la suma del lado derecho del índice ({3,2,1}) ambos son iguales a 6.

he escrito lo siguiente

  1. Declare dos variables mid e i donde mid el índice que estamos buscando i = este es el índice inicial
  2. Luego, while (mid<= arr.length-1) recorreremos la matriz y sumaremos cada lado de la matriz, un lado desde i=0 hasta i=mid y luego desde i=mid hasta i=array.length-1 , mientras suma cada lado a leftSum y rightSum respectivamente
  3. Y si leftSum==rightSum en cualquiera de estos casos, devolveremos mid si no lo hizo, aumentará mid en uno y reiterará,
  4. Si no se devuelve mid, devolveremos -1 al final.

En código es el siguiente

 function findEvenIndex(arr) { //Code goes here! let mid =1; let leftSum=0; let rightSum=0; while(mid<(arr.length-1)){ for(i=0;i<mid;i++){ leftSum=leftSum+arr[i] } rightSum = rightSum + arr[mid] if(rightSum==leftSum){ console.log("mid: "+ mid); return mid; } else{ mid++; } } return -1; }

sin embargo, no estoy seguro de por qué esto no funciona, cualquier ayuda sería apreciada

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Lo más fácil es usar slice + reduce para encontrar la suma start y end de ese índice

 function findEvenIndex(arr) { let index = -1; for (var i = 0; i < arr.length; i++) { let start = arr.slice(0, i+1).reduce((a, b) => a + b, 0); let end = arr.slice(i).reduce((a, b) => a + b, 0) if (start === end) { index = i } } return index; } console.log(findEvenIndex([1,2,3,4,3,2,1]))

about 4 years ago · Juan Pablo Isaza Denunciar

0

 const inputElement = document.querySelector("#input") const button = document.querySelector("#btn") const resultElement = document.querySelector("#result") button.addEventListener("click" , ()=>{ if(!inputElement.value || inputElement.value.split(",").length <3){ return; } const numbers = inputElement.value.split(",").map(number=>Number(number)) resultElement.textContent = findIndexOfEqualSum([...numbers]) }) function findIndexOfEqualSum(arr) { for(let i=0; i < arr.length -1; i++){ let leftSide=0 let rightSide=0 for(j=0 ; j < i; j++){ leftSide+= arr[j] } for(g=i+1 ; g < arr.length; g++){ rightSide+= arr[g] } if(leftSide==rightSide) return i; } return -1; }
 <body> <style> body>*:not(:last-child) { margin-bottom: .5rem; } #input { display:block; width:100%; padding:.5rem; } </style> <input id="input" type="text" placeholder="enter comma seperated numbers" > <button id="btn"> Find Index </button> <div id="result"> Result will be here </div> </body>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Un enfoque ligeramente diferente

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

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