トピック:
いくつかの要素の配列の先頭には、配列、我々は回転呼んで配列の最後に移動しました。
出力回転最小の素子アレイの回転の入力配列の非降順。
例えば、配列{3,4,5,1,2}、{1,2,3,4,5}は最小のアレイの回転です。
注:配列のサイズは、リターン0 0である場合、すべての要素は、0よりも大きいに記載されています。
分析:
153でこの質問とLeetCode、154は同じです。アレイ素子153は単に重複する要素が存在する154の配列を可能にするために、重複していません。
ここで、アレイは、直接入力要件の非降順であるので154と同じ問題です。
アレイは、最小回転が配列(C ++)をソート見つける回転さソートにおける最小のLeetCode 153検索
LeetCode 154はII(C ++)を回転ソートされた配列内の最小値を見つけるために回転ソートアレイIIで最小値を探します
分析は、会場を確認するために、被験者の観点から153154を分析する必要があるかもしれません。
手順:
C ++
クラス解決{ パブリック: INT minNumberInRotateArray(ベクトル< INT > rotateArray){ 場合(rotateArray.empty()) 戻り 0 。 リターンのfind(rotateArray、0、rotateArray.size() - 1 )。 } int型の検索(ベクトル< INT >&NUMS、INT L、int型R){ 場合(NUMS [L] <NUMS [R] || L == R) 戻りNUMS [L]。 INT半ば= L +(R - L)/ 2 。 リターン分(検索(NUMS、L、MID)、検索(NUMS、ミッド+ 1 、R)); } }。
ジャワ
輸入はjava.util.ArrayList; 輸入 java.utilの。* ; パブリック クラスソリューション{ 公共 のint minNumberInRotateArray(INT []配列){ 場合(Array.lengthと== 0 ) 戻り 0 ; 戻り検索(アレイ、0、Array.lengthと-1 )。 } 公共 int型の検索(INT []配列、int型の L、int型R){ もし(配列[L] <配列[R] || L == R) 戻り配列[L]。 int型ミッド= L +(R - L)/ 2 。 リターン Math.min(検索(アレイ、L、MID)、(見つけるアレイ、中間+ 1 、R)); } }