件名の説明:
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
トピック出典:滞在ボタン試験