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

110
Visualizações
¿Complejidad temporal de buscar el valor objetivo en la matriz 2D?

El problema real es bastante simple, implemente un algoritmo que devuelva verdadero si el valor objetivo está contenido dentro de la matriz . Aquí están las dos soluciones que se me ocurrieron. No estoy seguro de cuál sería preferible? Creo que la solución 1 es más rápida ya que no necesitamos construir una nueva matriz, sin embargo, ¿sería esto significativamente más rápido?

Solución 1:

 var searchMatrix = function(matrix, target) { let cols = matrix[0].length; let rows = matrix.length; let left = 0; let right = cols*rows - 1; while(left <= right) { let midIndex = left + Math.floor((right-left)/2); let midValue = matrix[Math.floor(midIndex/cols)][Math.floor(midIndex%cols)]; console.log(midValue); if(midValue === target) { return true; } else if(midValue < target) { left = midIndex + 1; } else { right = midIndex - 1; } } return false; };

Solución 2:

 var searchMatrix = function(matrix, target) { let arr = [] for(let row of matrix) { arr = [...arr,...row]; } let left = 0; let right = arr.length - 1; while(left <= right) { let middle = left + Math.floor((right-left)/2); if(arr[middle] === target) { return true; } else if(arr[middle] < target) { left = middle + 1; } else { right = middle - 1; } } return false; };

Según tengo entendido, el paso principal que estamos agregando es convertir la matriz en un Array regular. ¿Haría esto que el algoritmo sea O(n) ya que tenemos que agregar cada elemento a la nueva matriz?

Para la solución 1, no tenemos que crear una nueva matriz para tener un espacio constante, ¿correcto? No estoy particularmente seguro de cómo explicar que la primera solución es preferible en términos de tiempo/espacio.

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

0

Según los comentarios agregados a la publicación, la legibilidad y la capacidad de analizar la complejidad del tiempo darían la mejor respuesta. Quizás la primera opción sería la más ideal si pudiéramos hacerla más legible a través de una función separada utilizada para calcular el valor de la matriz.

La opción 2 ocupa más espacio ya que estamos creando una matriz adicional para buscar.

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