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