Skip to content

Commit 7889d80

Browse files
authored
Create Solution.java
1 parent c6772b4 commit 7889d80

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
public int findInMountainArray(int target, MountainArray mountainArr) {
3+
int length = mountainArr.length();
4+
int l = 0, r = length - 1;
5+
while (l < r) {
6+
int mid = l + r >>> 1;
7+
if (mountainArr.get(mid) > mountainArr.get(mid + 1)) r = mid;
8+
else l = mid + 1;
9+
}
10+
int topIndex = r;
11+
int topValue = mountainArr.get(topIndex);
12+
if (target == topValue) return topIndex;
13+
if (target > topValue) return -1;
14+
l = 0;
15+
r = topIndex - 1;
16+
while (l < r) {
17+
int mid = l + r >>> 1;
18+
if (mountainArr.get(mid) >= target) r = mid;
19+
else l = mid + 1;
20+
}
21+
if (mountainArr.get(r) == target) {
22+
return r;
23+
}
24+
l = topIndex + 1;
25+
r = length - 1;
26+
while (l < r) {
27+
int mid = l + r >>> 1;
28+
if (mountainArr.get(mid) <= target) r = mid;
29+
else l = mid + 1;
30+
}
31+
return mountainArr.get(r) == target ? r : -1;
32+
}
33+
}

0 commit comments

Comments
 (0)