ソードフィンガーオファー------------二次元配列で検索

ここに画像の説明を挿入

トピックリンク!

アイデア:
この質問では、質問の制約配列の条件から開始できます。各行は左から右に昇順で並べ替えられ、各列は上から下に昇順で並べ替えられるため、開始できます。左上隅からトラバーサルを開始します。現在の要素がターゲットよりも大きい場合は、この列を削除します。より小さい場合は、この行を削除します。

コード:


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

おすすめ

転載: blog.csdn.net/weixin_43743711/article/details/115051121