# LeetCode 1095 Solutions
[LeetCode 1095: Find in Mountain Array](https://leetcode.com/problems/find-in-mountain-array/description/)
``` clike
/**
* // 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 {
public:
int findInMountainArray(int target, MountainArray &mountainArr) {
int len = mountainArr.length();
int l = 0, r = len - 1;
int ml, mr, index;
while(l <= r) {
ml = l + (r - l) / 3;
mr = r - (r - l) / 3;
cout << l << " " << ml << " " << mr << " " << r << endl;
if(mountainArr.get(ml) > mountainArr.get(mr)) {
r = mr - 1;
} else {
l = ml + 1;
}
}
index = ml;
l = 0, r = index;
int m;
while(l <= r) {
m = (l + r) / 2;
int num = mountainArr.get(m);
if(num == target) {
return m;
}
if(num < target) {
l = m + 1;
} else {
r = m - 1;
}
}
l = index + 1, r = len - 1;
while(l <= r) {
m = (l + r) / 2;
int num = mountainArr.get(m);
if(num == target) {
return m;
}
if(num < target) {
r = m - 1;
} else {
l = m + 1;
}
}
return -1;
}
};
```