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]

鉴于一个绝对是一座山的阵列,返回任何  i 这样的  A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]

例1:

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

例2:

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

注意:

  1. 3 <= A.length <= 10000
  2. 0 <= A[i] <= 10^6
  3. A是一座山,如上所述

 

 

 

由于山峰阵列中数组数值为先递增后递减,所以当出现前一个值大于后一个值时,前一个值得下标索引即是峰值指数
public static int peakIndexArray(int [] A)
    {
        int peak=0,left=0,right=A.length-1;
        while (left<right)
        {
            if (A[left]>A[left+1])
            {
                peak=left;
                break;
            }
            left++;
        }
        return peak;
    }

 

posted @ 2019-04-13 16:47  Dloading  阅读(115)  评论(0编辑  收藏  举报