Preguntas de cepillado del botón de fuerza de Python: la espada se refiere a la Oferta 04. Buscar en una matriz bidimensional

Oferta Jianzhi 04. Búsqueda en matriz bidimensional
En una matriz bidimensional n * m, cada fila se ordena en orden ascendente de izquierda a derecha, y cada columna se ordena en orden ascendente de arriba a abajo. Complete una función eficiente, ingrese una matriz bidimensional y un número entero, y juzgue si la matriz contiene el número entero.
inserte la descripción de la imagen aquí

Método:
comience a buscar desde la esquina superior derecha, similar a la dicotomía. Si es más pequeña, se elimina la columna actual, y si es más grande, se elimina la fila actual y el rango se reduce una y otra vez. Por supuesto, también puede comenzar desde la esquina inferior izquierda y hacer lo contrario.

class Solution:
    def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool: 
        if len(matrix) == 0:
            return False     
        raw = 0
        row = len(matrix[0]) - 1
        while (row >= 0 and raw < len(matrix)):
            if target == matrix[raw][row]:
                return True
            elif target > matrix[raw][row]:
                raw += 1
            else:
                row -= 1
        return False

Supongo que te gusta

Origin blog.csdn.net/weixin_45455015/article/details/118347468
Recomendado
Clasificación