zoukankan      html  css  js  c++  java
  • LeetCode 852. 山脉数组的峰顶索引 (二分)

    题目链接:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/

    我们把符合下列属性的数组 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 是如上定义的山脉

    二分查找:

     1 int peakIndexInMountainArray(int* A, int ASize){
     2     int l=0,r=ASize-1;
     3     while(l<=r){
     4         int mid=l+(r-l)/2;
     5         if(A[mid]>A[mid+1]&&A[mid]>A[mid-1]){
     6             return mid;
     7         }else if((A[mid]>A[mid+1])&&A[mid]<A[mid-1]){
     8             r=mid-1;
     9         }else{
    10             l=mid+1;
    11         }
    12     }
    13     return -1;
    14 }

    顺序遍历:

     1 int peakIndexInMountainArray(int* A, int ASize){
     2     int index=0;
     3     for(int i=1;i<ASize-1;i++){
     4         if(A[i-1]<A[i]&&A[i]>A[i+1]){
     5             index=i;
     6             break;
     7         }
     8     }
     9     return index;
    10 }
  • 相关阅读:
    第 9 章
    第 8 章
    第 7 章
    第 6 章
    第 5 章
    第 4 章
    跳舞链解数独
    minic 类型声明与变量定义句型处理
    minic 动作句型处理
    minic 符号表
  • 原文地址:https://www.cnblogs.com/shixinzei/p/11344366.html
Copyright © 2011-2022 走看看