Idea: Para
esta pregunta, podemos comenzar desde la condición de la matriz de restricción en la pregunta. Cada fila se ordena en orden creciente de izquierda a derecha, y cada columna se ordena en orden creciente de arriba a abajo, para que podamos comenzar desde la esquina superior izquierda Iniciar recorrido, si el elemento actual es mayor que el objetivo, elimine esta columna; si es menor que, elimine esta fila.
Código:
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
if(matrix.size()==0) return false;
int i = 0, j = matrix[0].size()-1;
while(i <= matrix.size()-1 && j >=0 )
{
if(matrix[i][j] > target) --j;
else if(matrix[i][j] < target) ++i;
else return true;
}
return false;
}
};