LeetCode 852山のピークインデックス配列(半分)

トピックへのリンク:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/

私たちは、山と呼ばれる配列の次の属性に準拠します:

A.length> = 3が
1ように[0] <[1 - 0の<私はA.length <本である ] <... A [I-1] <A [i]が> A [I + 1]>。 ..> [A.length - 1]
指定されたアレイは山のように決定されるため、任意[0] <a [1] <... A [i-1] <a [i]> 満たすために戻り Aを[ I + 1]> ...> [A.length - 値1] Iインチ

 

例1:

入力:[0,1,0]
出力:1
例2:

入力:[0,2,1,0]
出力:1
 

ヒント:

。3 <= A.length <= 10000
0 <= A [I] <= ^ 10 6
山Aは、上記のように定義されます

バイナリ検索:

1  INT peakIndexInMountainArray(INT * A、INT ASIZE){
 2      のint L = 0、R = ASize- 1 3      しばらく(L <= R){
 4          INTミッド= 1 +(RL)/ 2 5          もし([中間]> A [中間+ 1 ] && A [中間]> A [半ば1 ]){
 6              リターンミッド。
7          } そう であれば(([中間]> A [中間+ 1 ])&& A [中間] <[半ば1 ]){
 8              R =半ば1 9         } {
 10              、L =ミッド+ 1 11          }
 12      }
 13      リターン - 1 14 }

注文トラバーサル:

1  INT peakIndexInMountainArray(INT * A、INT ASIZE){
 2      int型のインデックス= 0 3      のためにint型 i = 1 ; iは<ASize- 1 ; iは++ ){
 4          もし([I- 1 ] <[I] && A [i]が> A [I + 1 ]){
 5              インデックス= I。
6              ブレーク;
7          }
 8      }
 9      リターン指数。
10 }

 

おすすめ

転載: www.cnblogs.com/shixinzei/p/11344366.html