[1]安全プランを証明するために。[Pythonのことで] 2次元配列を探します

【パイソンによって二次元アレイを探します

タイトル:(各一次元配列の長さと同じ)左から右への二次元アレイは、各列のソートを昇順の順に、昇順に上から下に、各列をソートします。完全な機能、例えば、二次元アレイと整数を入力し、配列の整数が含まれているか否かが判断されます。

アイデア:

  まず、配列番号の右上隅を選択します。この番号を見つけるのは数に等しい場合、ルックアップ・プロセスは終了し、数がどこカラムこの数字を除いて、アレイを探しよりも大きい場合、数はここ数の行を除く、見つけること数未満である場合。その右上隅あなたが探している番号は、配列内に存在しない場合、行の各時間または各ステップは、あなたが探している番号を見つけるまで、見つけるために、範囲を絞り込むことができ、または範囲を見つけるためになるように、配列のルックを拒否空。

例えば:

あなたは、二次元アレイ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(標的配列))

おすすめ

転載: blog.csdn.net/qq_33487726/article/details/90715996