1. 程式人生 > >【LeetCode】852. 山脈陣列的峰頂索引

【LeetCode】852. 山脈陣列的峰頂索引

我們把符合下列屬性的陣列 A 稱作山脈:

A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1] 給定一個確定為山脈的陣列,返回任何滿足 A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1] 的 i 的值。

示例 1:

輸入:[0,1,0] 輸出:1

示例 2:

輸入:[0,2,1,0] 輸出:1

提示:

3 <= A.length <= 10000 0 <= A[i] <= 10^6 A 是如上定義的山脈

class Solution {
public:
    int peakIndexInMountainArray(vector<int>& A) {
        int left = 0;
        int right = A.size()-1;
        int res = redo(A,left,right);
        return(res);
    }
    
    int redo(vector<int>& A,int left,int right)
    {
        int res;
        int m = (left + right)/2;
        if (A[m-1] > A[m])
            res = redo(A,left,m);
        else if
            (A[m] < A[m+1])
            res = redo(A,m,right);
        else
            res = m;
        return(res);
    }
};