/**
* // This is MountainArray's API interface.
* // You should not implement it, or speculate about its implementation
* interface MountainArray {
* public int get(int index) {}
* public int length() {}
* }
*/classSolution{publicintfindInMountainArray(int target, MountainArray mountainArr){//找山顶元素int left=0;int right=mountainArr.length()-1;int mid;int top=0;while(left<right){
mid=(left+right)>>1;if(mountainArr.get(mid)<mountainArr.get(mid+1)){
left=mid+1;}else{
right=mid;}}
top=left;//左边寻找target
left=0;
right=top;while(left<=right){
mid=(left+right)>>1;int tmp=mountainArr.get(mid);if(tmp==target){return mid;}elseif(tmp<target){
left=mid+1;}else{
right=mid-1;}}//右边寻找target
left=top;
right=mountainArr.length()-1;while(left<=right){
mid=(left+right)>>1;int tmp=mountainArr.get(mid);if(tmp==target){return mid;}elseif(tmp<target){
right=mid-1;}else{
left=mid+1;}}return-1;}}
二分法import java.util.*;public class Solution { //普通的二分 public static int baseBinarySearch(int []nums,int tar){ if (nums.length == 0) return -1; int left=0; int right=nums.length-1; int mid;...