86
86
``` python
87
87
class Solution :
88
88
def peakIndexInMountainArray (self , arr : List[int ]) -> int :
89
- n = len (arr)
90
- left, right = 1 , n - 2
89
+ left, right = 1 , len (arr) - 2
91
90
while left < right:
92
- mid = (left + right) // 2
93
- if arr[mid] < arr[mid + 1 ]:
94
- left = mid + 1
95
- else :
91
+ mid = (left + right) >> 1
92
+ if arr[mid] > arr[mid + 1 ]:
96
93
right = mid
97
- return right
94
+ else :
95
+ left = mid + 1
96
+ return left
98
97
```
99
98
100
99
### ** Java**
@@ -104,59 +103,55 @@ class Solution:
104
103
``` java
105
104
class Solution {
106
105
public int peakIndexInMountainArray (int [] arr ) {
107
- int n = arr. length;
108
- int left = 1 , right = n - 2 ;
106
+ int left = 1 , right = arr. length - 2 ;
109
107
while (left < right) {
110
- int mid = left + (right - left) / 2 ;
111
- if (arr[mid] < arr[mid + 1 ]) {
112
- left = mid + 1 ;
113
- } else {
108
+ int mid = (left + right) >> 1 ;
109
+ if (arr[mid] > arr[mid + 1 ]) {
114
110
right = mid;
111
+ } else {
112
+ left = mid + 1 ;
115
113
}
116
114
}
117
- return right ;
115
+ return left ;
118
116
}
119
117
}
120
118
```
121
119
122
- ### ** Go**
123
-
124
- ``` go
125
- func peakIndexInMountainArray (arr []int ) int {
126
- n := len (arr)
127
- left , right := 1 , n-2
128
- for left < right {
129
- mid := left + (right-left)/2
130
- if arr[mid] < arr[mid+1 ] {
131
- left = mid + 1
132
- } else {
133
- right = mid
134
- }
135
- }
136
- return right
137
- }
138
- ```
139
-
140
120
### ** C++**
141
121
142
122
``` cpp
143
123
class Solution {
144
124
public:
145
125
int peakIndexInMountainArray(vector<int >& arr) {
146
126
int left = 1, right = arr.size() - 2;
147
- while (left < right) {
148
- int mid = left + right >> 1;
149
- if (arr[ mid] < arr[ mid + 1] ) {
150
- left = mid + 1;
151
- } else {
152
- right = mid;
153
- }
127
+ while (left < right)
128
+ {
129
+ int mid = (left + right) >> 1;
130
+ if (arr[ mid] > arr[ mid + 1] ) right = mid;
131
+ else left = mid + 1;
154
132
}
155
- return right ;
133
+ return left ;
156
134
}
157
135
};
158
136
```
159
137
138
+ ### **Go**
139
+
140
+ ```go
141
+ func peakIndexInMountainArray(arr []int) int {
142
+ left, right := 1, len(arr)-2
143
+ for left < right {
144
+ mid := (left + right) >> 1
145
+ if arr[mid] > arr[mid+1] {
146
+ right = mid
147
+ } else {
148
+ left = mid + 1
149
+ }
150
+ }
151
+ return left
152
+ }
153
+ ```
154
+
160
155
### ** JavaScript**
161
156
162
157
``` js
0 commit comments