タイトル説明
(同一の各一次元アレイの長さ)は、上から下に増加する順に、二次元アレイの各列を並べ替えるために、昇順ソートの順に左から右に、各行。完全な機能、例えば、二次元アレイと整数を入力し、配列の整数が含まれているか否かが判断されます。
C ++ 11に実現
#include <iostreamの> する#include <ベクトル> の#include <アルゴリズム> の#include <ストリング> 名前空間STDを使用して、 ブール(ベクター<ベクトル<整数>>配列、int型のターゲット)を探す { INTをrowCount = array.size()。 INT COLCOUNT =配列[0] .size()。 int型I、J。 (; I> = 0 && jの<COLCOUNT; I =をrowCount-1、J = 0)のための { IF(ターゲット==配列[I] [J]) trueを返します。 (目標<配列[I] [J])であれば { i--。 持続する; } IF(ターゲット>配列[I] [J]) { J ++。 持続する; } falseを返します。 } int型のmain() { int型のk = 0。 文字列SVAL。 ベクトル<整数> SVEC。 ベクトル<ベクトル<int型>> PVEC。 (++ J; J <5 INT J = 0)のための { (I = K int型、iが10 + kは<; ++ i)がため sVec.push_back(I)。 K ++; COUT << "子ベクター" << sVec.size()<< ENDL。 以下のための(ベクトル<整数> ::イテレータitor = sVec.begin(); itor = sVec.end();!itor ++) はcout << * itor <<てendl; pVec.push_back(SVEC)。 sVec.clear(); } COUT << "親ベクター" << pVec.size()<< ENDL。 裁判所未満<<「を入力してくださいチェック整数」<<てendl; cinを>> SVAL。 (もし!検索(PVEC、STOI(SVAL))) はcout << "整数データを見つけることができません" <<てendl; 他の 裁判所未満<<「整数データを検索し、」<<てendl; } (1)一方、 0を返します。 }
思路
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
最初の数4は、I =取得開始をrowCountを-1の最後の行から始まる、J = 0、N Mと目標値との比較を想定しています。
1. M <N、天然に行数を増やすことなく、右の列へのクエリの数を増加させます
2. M> N、行アップクエリの自然数
3. M == nは、発見された、終了
対象は、技術的な内容カザフスタンに欠けています