LeetCode(電源ボタン) - 回転さソートアレイにおける検索ソートパイソンの配列が検索を実現回転

件名の説明:

Pythonは達成 ソート、検索の配列を回転させる回転したソート配列で検索  

  中国語:アレイが以前に未知点で回転させたに従って昇順と仮定する。

  (例えば、配列[0,1,2,4,5,6,7]は[4,5,6,7,0,1,2]になることができます)。

  標的配列、そのインデックスリターンの存在は、それ以外の場合は-1を返す場合、与えられた目標値を検索します。

  あなたは、配列要素が重複して存在しないと仮定することができます。

  アルゴリズムのあなたの時間の複雑さはO(n個のログ)レベルでなければなりません。

  英文:昇順にソート配列は、事前にあなたにいくつかのピボット不明で回転させるとします。

(すなわち、[0,1,2,4,5,6,7]は[4,5,6,7,0,1,2]になるかもしれません)。

あなたが検索した目標値を与えています。そのインデックスを返す配列で見つかった場合は、そうでない場合は-1を返します。

あなたは重複が配列に存在しないと仮定して。

あなたのアルゴリズムの実行時の複雑さはO(n個のログ)の順でなければなりません。

 

1  クラス溶液(オブジェクト):
 2      DEF 検索(セルフ、NUMS、ターゲット):
 3          "" " 
4          :タイプNUMS:リスト[INT]
 5          :型ターゲット:INT
 6          :RTYPE:INT
 7          """ 
8          スタート= 0
 9          端= LEN(NUMS)-1
 10          ながら開始<= 終了:
 11              半ば=(+端を開始)/ 2    对于整数会自动省去小数部分
12              なら == NUMS [中間] :ターゲット
 13                  リターンミッド
 14              もし NUMS [中期]> =NUMS [開始]:
 15の                 場合、ターゲットは> = NUMSは、[開始] 目標<= NUMS [中間]:
 16                      端=ミッド1
 17                  18                      START =ミッド+ 1
 19                      
20              なら NUMS [中間] < NUMS [END] :
 21                  であればターゲット> NUMS [中間] 目標<= NUMS [終了]:
 22                      START =ミッド+ 1
 23                      
24                  25                      端=ミッド-1
 26          リターン -1

 

トピック出典:滞在ボタン試験

おすすめ

転載: www.cnblogs.com/spp666/p/11536041.html