aboutsummaryrefslogtreecommitdiff
path: root/other/peak_idx_mountain_arr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/peak_idx_mountain_arr.cpp')
-rw-r--r--other/peak_idx_mountain_arr.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/other/peak_idx_mountain_arr.cpp b/other/peak_idx_mountain_arr.cpp
new file mode 100644
index 0000000..2900091
--- /dev/null
+++ b/other/peak_idx_mountain_arr.cpp
@@ -0,0 +1,25 @@
+// 852. Peak Index in a Mountain Array
+#include "leetcode.h"
+
+class Solution {
+public:
+ int peakIndexInMountainArray(vector<int> &arr) {
+ int left = 1, right = arr.size() - 1;
+ while (left < right) {
+ int mid = (left + right) / 2;
+ if (arr[mid] < arr[mid + 1])
+ left = mid + 1;
+ else
+ right = mid;
+ }
+ return left;
+ }
+};
+
+int main() {
+ Solution obj;
+ vector<int> a1 = {0, 1, 0}, a2 = {0, 2, 1, 0}, a3 = {0, 10, 5, 2};
+ printf("%d\n", obj.peakIndexInMountainArray(a1)); // expect: 1
+ printf("%d\n", obj.peakIndexInMountainArray(a2)); // expect: 1
+ printf("%d\n", obj.peakIndexInMountainArray(a3)); // expect: 1
+}