diff options
Diffstat (limited to 'other/peak_idx_mountain_arr.cpp')
-rw-r--r-- | other/peak_idx_mountain_arr.cpp | 25 |
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 +} |