検索回転ソートされた配列
問題解決のアイデア:+バイナリサーチバイナリサーチ分界点ずつ
クラスソリューション{ 公共 int型の検索(INT [] NUMS、int型のターゲット){ int型のlen = nums.length。 もし(LEN == 0 ){ 戻り -1 。 } であれば(LEN == 1 ){ 戻り NUMS [0] ==ターゲット0:-1 。 } int型の端= LEN - 2 。 INT = 0を起動します。 int型ミッド= 0 ; しながら(開始<= 端){ 半ば =(スタート+エンド)/ 2; もし(NUMS [中間]> NUMS [中間+ 1 ]){ 破ります。 } そう であれば(NUMS [中間]> =のNUMS [開始]){ 起動中間+ 1 = 。 } 他{ 端 =ミッド- 1 。 } } 場合(スタート> 端){ 端 = LEN - 1 。 } 他{ 端 = ミッド。 } 場合(目標== NUMS [0 ]){ リターン0 ; } そう であれば(目標<NUMS [0 ]){ 開始 =エンド+ 1 。 端 = LEN - 1 。 } 他{ 起動 1 = 。 } ながら(開始<= 端){ 半ば =(+端を開始)/ 2 。 もし(NUMS [中間] == ターゲット){ 戻り中間と、 } そう であれば(NUMS [中間] < ターゲット){ 起動中間+ 1 = 。 }他に{ 終了 =中旬- 1 。 } } 戻り -1 。 } }