Notas do pincel (1) - pesquise em uma matriz bidimensional

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;          
    }
};

 

Publicado 36 artigos originais · 19 elogios · Mais de 20.000 visualizações

Acho que você gosta

Origin blog.csdn.net/GJ_007/article/details/105057770
Recomendado
Clasificación