Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

225
Visualizações
Encuentre el entero positivo más bajo que no aparece en la matriz

Estoy tratando de resolver un problema de tipo leetcode que es un problema de práctica que vino con una próxima prueba de código que necesito hacer para un trabajo y tengo problemas con eso. ¿Alguien puede ayudarme a entender qué está pasando mal?

Básicamente, estoy buscando la opción de fuerza bruta ya que no conozco algos/DS.

 PROBLEM:

Escribe una función:

solución de la función (A);

que, dada una matriz A de N enteros, devuelve el entero positivo más pequeño (mayor que 0) que no aparece en A.

Por ejemplo, dado A = [1, 3, 6, 4, 1, 2], la función debería devolver 5.

Dado A = [1, 2, 3], la función debería devolver 4.

Dado A = [−1, −3], la función debería devolver 1.

Escriba un algoritmo eficiente para las siguientes suposiciones:

N es un número entero dentro del rango [1..100,000]; cada elemento de la matriz A es un número entero dentro del rango [−1,000,000..1,000,000].

 HERE IS MY SOLUTION: function solution(A) { let newArray = A.sort(function(a, b){return ab}) let lowestNumber = 1 for(i=0; i < newArray.length; i++) { if(lowestNumber > newArray[0]) { return lowestNumber } if(lowestNumber == newArray[i]) { lowestNumber = lowestNumber + 1 } if(i = newArray.length - 1) { return lowestNumber } } }

El siguiente fragmento no funciona como esperaba. el número más bajo no se está aumentando y también el ciclo está saliendo aquí, creo.

 if(lowestNumber == newArray[i]) { lowestNumber = lowestNumber + 1

¡Gracias por tu ayuda!

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Creo que su > debería ser < , y el = en if(i = newArray.length - 1) debería ser === .

Y lowestNumber > newArray[0] siempre será verdadero si la matriz contiene un número negativo, por lo que se devolverá 1 .

Su esfuerzo parece descuidado, por lo que tendrá que mejorar su juego para la entrevista.

 const integers = [5, -345, 562456, 95345, 4, 232, 1, 2, 3, 7, -457]; function solution(A) { let newArray = A.sort((a, b) => a - b); let lowestNumber = 1; for (let i = 0; i < newArray.length; i++) { const n = newArray[i]; if (n > 0) { if (lowestNumber < n) { return lowestNumber; } else { lowestNumber = n + 1; } } } return lowestNumber; } console.log(solution(integers));

about 4 years ago · Juan Pablo Isaza Relatório

0

Puedes hacer esto en O(N) usando Map() :

  • Primero establezca cada número en la matriz.
  • Luego, comenzando desde 1, busque y devuelva el número que falta en la secuencia.

 function solution(arr) { const seen = new Map(); for (let i = 0; i < arr.length; i++) { seen.set(arr[i]); } for (let i = 1; i <= arr.length + 1; i++) { if (!seen.has(i)) return i; } return 1; } console.log(solution([1, 3, 6, 4, 1, 2])); //-> 5 console.log(solution([1, 2, 3])); //-> 4 console.log(solution([-1, -3])); //-> 1

about 4 years ago · Juan Pablo Isaza Relatório

0

La solución más rápida

 function solution(A) { // write your code in JavaScript (Node.js 8.9.4) if (!A) return 1; A.sort(); if (A[A.length - 1] < 1) return 1; const setA = new Set(A); let length = setA.size; for (let i = 1; i <= length; i++) { if (!setA.has(i)) { return i; } } return length + 1; }

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda