Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

149
Views
Determine si la matriz está en orden Y el último elemento es 0

¿Cómo puedo determinar cuándo los primeros números X de una matriz están en orden Y el último elemento en 0? es decir, la matriz es

 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0

Actualmente tengo esto, pero depende de que la matriz sea siempre la misma, lo cual no es muy flexible.

 const sorted = (array) => { const solved = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] return (JSON.stringify(array) == JSON.stringify(solved)) }
about 4 years ago · Santiago Gelvez
3 answers
Answer question

0

Primero defina una función genérica para verificar que un segmento de una matriz esté ordenado, luego defina una segunda función que use la primera para ver que los primeros valores están ordenados y agregue una verificación para el valor final:

 function isSegmentSorted(array, start=0, end=array.length) { for (let i = start + 1; i < end; i++) { if (array[i - 1] > array[i]) return false; } return true; } function isSortedWithExtraZero(array) { return array.at(-1) === 0 && isSegmentSorted(array, 0, array.length - 1); } var array = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0]; console.log(isSortedWithExtraZero(array));

about 4 years ago · Santiago Gelvez Report

0

Podrías hacer algo tan simple como esto:

 const checkArray = (arr) => { if(arr[arr.length-1] != 0){ return false; } const nums = arr.slice(0, arr.length - 1); const sortedArr = [...nums].sort((a, b) => a - b); for (let i = 0; i < nums.length; i++) { if(nums[i] != sortedArr[i]){ return false; } } return true; } console.log(checkArray([1,2,3,0])); // true console.log(checkArray([1,2,3,4])); // false console.log(checkArray([1,3,2,0])); // false

Básicamente los pasos son:

  • Compruebe si el último elemento es 0 , de lo contrario, realice una devolución anticipada.
  • Cree una versión ordenada de la primera parte de la matriz (la que tiene los números)
  • Compruebe si la parte de los números es igual a la matriz ordenada . Si algún elemento es diferente devuelve falso

Al final, devuelve verdadero solo si se verifican todas las condiciones.

Esto es lo suficientemente genérico como para que, si en el futuro desea cambiar el tipo de ordenación, simplemente pueda actuar sobre la función de sort (por ejemplo, si desea que sea descendente).

about 4 years ago · Santiago Gelvez Report

0

Podemos usar every las funciones para eso. Con !idx excluimos el primer índice 0, luego verificamos si idx es menor que la longitud de su matriz. Si es así, verifique si está ordenado, de lo contrario verifique que sea igual a cero.

 const solutions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0]; const sorted = solutions.every((val, idx, arr) => !idx || (idx < solutions.length - 1 ? arr[idx - 1] <= val : val === 0) ); console.log(sorted);

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!