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

105
Vistas
¿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 Respuestas
Responde la pregunta

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 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