/**
* // This is the MountainArray's API interface.
* // You should not implement it, or speculate about its implementation
* class MountainArray {
* public:
* int get(int index);
* int length();
* };
*/classSolution{public:intfindInMountainArray(int target, MountainArray &mountainArr){int left =0, right = mountainArr.length()-1;while(left < right -1){int mid =(left + right)>>1;if(mountainArr.get(mid +1)< mountainArr.get(mid)) right = mid;else left = mid +1;}int highest = left;
left =0;
right = highest;while(left < right){int mid =(left + right)>>1;if(mountainArr.get(mid)== target)return mid;if(mountainArr.get(mid)< target) left = mid +1;else right = mid;}if(mountainArr.get(left)== target)return left;
left = highest;
right = mountainArr.length()-1;while(left < right){int mid =(left + right)>>1;if(mountainArr.get(mid)== target)return mid;if(mountainArr.get(mid)> target) left = mid +1;else right = mid;}if(mountainArr.get(left)== target)return left;return-1;}};
/**
* // This is the MountainArray's API interface.
* // You should not implement it, or speculate about its implementation
* class MountainArray {
* public:
* int get(int index);
* int length();
* };
*/classSolution{public:intfindInMountainArray(int target, MountainArray &mountainArr){int left =0, right = mountainArr.length()-1;while(left < right -1){int mid =(left + right)>>1;if(mountainArr.get(mid +1)< mountainArr.get(mid)) right = mid;else left = mid;}int highest = mountainArr.get(left)> mountainArr.get(right)? left : right;
left =0;
right = highest;while(left < right){int mid =(left + right)>>1;if(mountainArr.get(mid)== target)return mid;if(mountainArr.get(mid)< target) left = mid +1;else right = mid -1;}if(right >=0&& mountainArr.get(right)== target)return right;
left = highest;
right = mountainArr.length()-1;while(left < right){int mid =(left + right)>>1;if(mountainArr.get(mid)== target)return mid;if(mountainArr.get(mid)> target) left = mid +1;else right = mid -1;}if(mountainArr.get(right)== target)return right;return-1;}};
1095. 山脉数组中查找目标值/** * // This is the MountainArray's API interface. * // You should not implement it, or speculate about its implementation * class MountainArray { * public: * int get(int index); * int length(); * }; */class Solution