【パイソンによって二次元アレイを探します
タイトル:(各一次元配列の長さと同じ)左から右への二次元アレイは、各列のソートを昇順の順に、昇順に上から下に、各列をソートします。完全な機能、例えば、二次元アレイと整数を入力し、配列の整数が含まれているか否かが判断されます。
アイデア:
まず、配列番号の右上隅を選択します。この番号を見つけるのは数に等しい場合、ルックアップ・プロセスは終了し、数がどこカラムこの数字を除いて、アレイを探しよりも大きい場合、数はここ数の行を除く、見つけること数未満である場合。その右上隅あなたが探している番号は、配列内に存在しない場合、行の各時間または各ステップは、あなたが探している番号を見つけるまで、見つけるために、範囲を絞り込むことができ、または範囲を見つけるためになるように、配列のルックを拒否空。
例えば:
あなたは、二次元アレイ7の数字を見つけた場合は、見つからないが返された場合はFalse、Trueを返しますが、そこにあります。
まず、8は7よりも大きい場合、一つは左側のみ領域8を見てする必要があります。そして、5は7未満、1は、以下の領域5を見つける必要がある;、このルールで見つけるために同じ、そしてTrueを返す場合には見つけることそれ以外の場合はFalseを返します。
Python実装:
#- * - python3.6.6 - * - #- * - JluTiger - * - クラスのソリューション: #の配列二维列表 デフ(自己、ターゲット、配列)検索: #の書き込みコードここでは 、行= LEN(配列) COLS = lenは(配列[0]) であれば、行> 0 と COLS> 0: 行 = 0 COL = COLS-1 つつ行<行及び COL> = 0: もしターゲット== 配列[行] [COL]: リターン真 ELIFの目標< 配列[行] [COL]: COL - = 1 さもなければ: 行 + = 1つの 戻り偽
もし 名前 == ' メイン ' :
目標 = 15
配列 = [1,2,3]、[4,5,6]、[7,8,9]、[10,12,13 ]
答え = ソリューション( )
プリント(answer.Find(標的配列))