ホームページ  >  記事  >  バックエンド開発  >  C++ は 2 次元配列での検索を実装します

C++ は 2 次元配列での検索を実装します

little bottle
little bottleオリジナル
2019-04-09 11:14:573380ブラウズ

今日、編集者はインターネット上で 2 次元配列の検索に関する小さな質問を見つけました。一緒に学習しましょう。興味があれば、よく見てください。コードが添付されているので、真似して書いてみよう!

C++ は 2 次元配列での検索を実装します

質問:

2 次元配列では、各行は左から右へ昇順に並べ替えられます。上から下へ昇順でソートされます。関数を完成させ、二次元配列と整数を入力し、配列に整数が含まれているかどうかを判定してください。

1. アイデア

まず、配列の右上隅の番号を選択します。数値が探している数値と等しい場合は検索プロセスが終了します。数値が探している配列より大きい場合は、数値が存在する列を削除します。数値が現在の数値より小さい場合は、その数値が存在する列を削除します。を探している場合は、その番号が含まれる行を削除します。つまり、求めたい数値が配列の右上隅にない場合は、毎回配列の検索範囲から1行または1列が削除され、ステップごとに検索範囲を絞り込むことができます。検索対象の番号が見つかるか、検索範囲が null になるまで。

2. 例

数値 7 が 2 次元配列で見つかった場合は true を返し、見つからなかった場合は、 falseを返します。

1 2 8 9

2 4 9 12

4 7 10 13

6 8 11 15

検索プロセスは次のとおりです。次のように: ###

C++ は 2 次元配列での検索を実装します

3. プログラミングの実装

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rows = array.size();
        int cols = array[0].size();
        if(!array.empty() && rows > 0 && cols > 0){
            int row = 0;
            int col = cols - 1;
            while(row < rows && col >= 0){
                if(array[row][col] == target){
                    return true;
                }
                else if(array[row][col] > target){
                    --col;
                }
                else{
                    ++row;
                }
            }
        }
        return false;
    }
};

[推奨コース: C ビデオ チュートリアル]

以上がC++ は 2 次元配列での検索を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。