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

155
Views
Encontrar la viabilidad del rendimiento utilizando cadenas de matriz

Aquí están los detalles del requisito:

 time = ["09-13", "12-14"] getResult(time) = false

La primera función es de 9 a. m. a 1 p. m. y la segunda comienza a las 12 p. m. Por lo tanto, no podrá ver cada función completa.

 time = ["07-09", "10-12", "15-19"] getResult(time) = true

pero no pude obtener el resultado. Estoy encontrando un desafío para hacerlo. alguien me ayuda?

aquí está mi intento:

 const getResult = (time) => { const nums = []; let pre = 0; time.map((item,index) => { item.split('-').map((v,i) => { nums.push(+v);//converting as number }); }); const result = nums.map((v,i) => { if(!i) return; console.log(v-pre)//but logically this is not works pre = v; }) } //time = ["09-13", "12-14"]; //false time = ["07-09", "10-12", "15-19"] //true getResult(time); //should be false

Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Convierta cada rango en cada hora individual dentro del rango, luego:

  • si la hora ya existe en la matriz, devuelve falso
  • de lo contrario, empuje a la matriz

 const getResult = (ranges) => { const filled = []; for (const range of ranges) { let [start, end] = range.split('-').map(Number); while (end !== start) { // Exclusive if (filled.includes(start)) return false; filled.push(start); start++; } } return true; }; console.log(getResult(["09-13", "12-14"])); console.log(getResult(["07-09", "10-12", "15-19"]));

Su enfoque actual no parece tener ninguna noción de convertir los rangos en sus horas individuales o de identificar superposiciones.

about 4 years ago · Juan Pablo Isaza Report

0

  • Ordene los intervalos de tiempo en función de su hora de inicio.
  • Recorra todos los intervalos de tiempo en la matriz ordenada y si en algún momento el inicio de un intervalo es menor que el final del anterior, devuelva false .
  • Si se agota todo el ciclo, devuelve true .

 function isValid(time) { const sortedTime = [...time].sort((a, b) => { const slotA = Number(a.split("-")[0]); const slotB = Number(b.split("-")[0]); return slotA - slotB; }); let last; for (let t of sortedTime) { const [start, end] = t.split("-").map(Number); if (last && start < last) { return false; } last = end; } return true; } console.log(isValid(["12-14", "09-13"])); console.log(isValid(["10-12", "07-09", "15-19"]));

about 4 years ago · Juan Pablo Isaza Report

0

Su formato ya es útil para comparaciones directas >= , una vez que dividimos los valores en sus - . Entonces, simplemente podemos ordenar los valores, luego verificar que en todos los casos después del primero, que la parte inicial (antes de - ) sea al menos tan grande como la parte final (después de - ) del valor anterior. Podría verse así:

 const feasible = (times) => [... times] .sort () .every ((t, i, a) => i == 0 || t .split ('-') [0] >= a [i - 1] .split ('-') [1]) console .log (feasible (["09-13", "12-14"])) console .log (feasible (["07-09", "10-12", "15-19"]))

Usamos el i == 0 || simplemente para evitar probar el primero de los valores ordenados.

Esto implica dividir cada uno de los valores dos veces (bueno, excepto el primero). Si esta ineficiencia le molesta, podemos resolverla (usando más memoria; ¡siempre hay una compensación!) dividiéndolos y guardando el resultado:

 const feasible = (times) => [... times] .sort () .map (s => s .split ('-')) .every ((t, i, a) => i == 0 || t [0] >= a [i - 1] [1])
about 4 years ago · Juan Pablo Isaza 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!