Buscar en Matriz 2D

Entradas Archivos Wallpaper ASCCI Problemas

Buscar en Matriz 2d

Este problema consisten en regresar un booleano dependiendo si un elemento se encuentra en una matriz de m*n en la cual esta ordenada de forma creciente

Solucion

# @param {Integer[][]} matrix
# @param {Integer} target
# @return {Boolean}
def search_matrix(matrix, target)
    m = matrix.length
    n = matrix[0].length
    l = 0
    r = (m*n)-1
    while l<=r
        mid = (l+r)/2
        f = mid /n
        c= mid%n
        if matrix[f][c]==target
            return true
        elsif matrix[f][c]>target
            r=mid-1
        else
            l = mid+1
        end
    end
    false
end

Este programa considera la matriz como un solo array y para acceder a los indices adecuados este divide los valores por n pues asi tendriamos la columna y fila siendo el residuo y el resultado respectivamente