zoukankan      html  css  js  c++  java
  • 852. Peak Index in a Mountain Array

    Let's call an array A a mountain if the following properties hold:

    • A.length >= 3
    • There exists some 0 < i < A.length - 1 such that A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]

    Given an array that is definitely a mountain, return any i such that A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1].

    Example 1:

    Input: [0,1,0]
    Output: 1
    

    Example 2:

    Input: [0,2,1,0]
    Output: 1

    Note:

    1. 3 <= A.length <= 10000
    2. 0 <= A[i] <= 10^6
    3. A is a mountain, as defined above.
      因为山峰的数字肯定是大于左边的数字跟右边的数字,所以用二分查找左右逼近找速度比较快。

       
       1 int peakIndexInMountainArray(int* A, int ASize) {
       2     int low=0,high=ASize,mid;
       3     while(low<high){
       4         mid=low+(high-low)/2;
       5         if(A[mid]>A[mid+1]) high=mid;
       6         else    low=mid+1;
       7         
       8     }
       9     return low;
      10 }
  • 相关阅读:
    第4章 Android移植环境搭建
    第3章 Android移植平台工具介绍
    第2章
    第1章 Android系统的编译和移植实例:
    nfs
    TFTP服务器搭建
    根系统制作
    nfs挂载
    uboot的编译
    交叉工具链的搭建方法
  • 原文地址:https://www.cnblogs.com/real1587/p/9813923.html
Copyright © 2011-2022 走看看