Notas do pincel (1) - pesquise em uma matriz bidimensional
Título
Em uma matriz bidimensional (cada matriz unidimensional tem o mesmo comprimento), cada linha é classificada em ordem crescente da esquerda para a direita e cada coluna é classificada em ordem crescente de cima para baixo. Por favor, complete uma função, insira uma matriz bidimensional e um número inteiro e determine se a matriz contém o número inteiro.
Idéias
A matriz é incrementada horizontal e verticalmente
O número no canto inferior esquerdo da matriz é maior que o número na coluna é menor que o número na linha
Portanto, inicie a pesquisa no canto inferior esquerdo, se o alvo for menor que esse número, pesquise para cima na coluna; se o alvo for maior que esse número, pesquise ao longo da linha, mude para a direita
Código
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int row_size=array.size();
int col_size=array[0].size();
//从左下角开始
for(int i=row_size-1,j=0;i>=0&&j<col_size;)
{
if(target==array[i][j])
return true;
else if(target<array[i][j])//小于,则往上找
{
i--;
continue;
}
else//大于则向右找
{
j++;
continue;
}
}
return false;
}
};