| 山脉数组的峰顶索引

符合下列属性的数组 arr 称为 山脉数组 :
arr.length >= 3
存在 i(0 < i < arr.length - 1)使得:
arr[0] < arr[1] < ... arr[i-1] < arr[i]
arr[i] > arr[i+1] > ... > arr[arr.length - 1]
给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1] 的下标 i 。示例 1:输入:arr = [0,1,0]
输出:1
示例 2:输入:arr = [0,2,1,0]
输出:1
示例 3:输入:arr = [0,10,5,2]
输出:1
示例 4:输入:arr = [3,4,5,1]
输出:2
示例 5:输入:arr = [24,69,100,99,79,78,67,36,26,19]
输出:2提示:3 <= arr.length <= 104
0 <= arr[i] <= 106
题目数据保证 arr 是一个山脉数组进阶:很容易想到时间复杂度 O(n) 的解决方案,你可以设计一个 O(log(n)) 的解决方案吗?

题解

class Solution:def peakIndexInMountainArray(self, arr: List[int]) -> int:length = len(arr)first = 0last = length - 1while last >= first:mid = first + (last-first)//2if mid == 0:return last# 前后探测法if arr[mid] > arr[mid-1] and arr[mid] > arr[mid+1]:return midelif arr[mid] > arr[mid-1] and arr[mid] < arr[mid+1]:first = mid + 1elif arr[mid] > arr[mid+1] and arr[mid] < arr[mid-1]:last = mid - 1

python 山脉数组的峰顶索引相关推荐

  1. 20191022:(leetcode习题)山脉数组的峰顶索引

    山脉数组的峰顶索引 题目 大致思路 代码实现 题目 我们把符合下列属性的数组 A 称作山脉: A.length >= 3存在 0 < i < A.length - 1 使得A[0] ...

  2. z12_852. 山脉数组的峰顶索引

    一.题目 二.想法 三.复杂度分析 四.优秀解法 五.学到了什么 一.题目 852. 山脉数组的峰顶索引 https://leetcode-cn.com/problems/peak-index-in- ...

  3. [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找)

    [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找) 题目:符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < ...

  4. 【LeetCode】852. 山脉数组的峰顶索引(C++)

    852. 山脉数组的峰顶索引 1 题目描述 2 示例描述 2.1 示例1 2.2 示例2 2.3 示例3 2.4 示例4 2.5 示例5 3 解题提示 4 解题思路 5 代码详解 1 题目描述 符合下 ...

  5. leetcode 852. 山脉数组的峰顶索引(二分查找)

    题目 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[ ...

  6. LeetCode(852)——山脉数组的峰顶索引(JavaScript)

    我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] ...

  7. leetcode852. 山脉数组的峰顶索引(二分法)

    我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < - A[i-1] & ...

  8. 852.山脉数组的峰顶索引---LeetCode(java实现)

    解题思路: 思路很简单:就是遍历数组,找到一个数组索引,使得他前一个元素比他小,后一个元素比他大. 不过这里需要注意:遍历的时候从索引1开始. class Solution {public int p ...

  9. LeetCode 852. 山脉数组的峰顶索引

最新文章

  1. 动态多尺度图表达3D人体骨架运动,实现精准预测效果超SOTA
  2. 通俗易懂理解~图机器学习导论
  3. 使用python调用zabbix接口截取监控图并生成Word文档
  4. Oracle9i数据库Data Guard实施及维护手册 1
  5. 上传图片动态预览(兼容主流浏览器)
  6. DICOM的常用Tag分类和说明
  7. 【快速安装Docker服务及Docker配置、Docker常用命令。】
  8. C/C++库函数math用法案例篇二
  9. es6 字符串模板 随手记
  10. 20190805:两个队列实现栈
  11. 前端跨域之Jsonp实现原理及.Net下Jsonp的实现
  12. 《麦肯锡方法》读书笔记12
  13. cmd命令行激活win7
  14. 三极管与恒流源电路(TI学习总结)
  15. 程序人生之项目团队那些人与事(1)
  16. 国家30万吨白糖收储正式启动
  17. Unity3D学习记录 (跑酷小游戏完结)
  18. 通过手机型号查找相应UA信息
  19. LaTex 中 Author biography里面插入作者照片
  20. Cardboard Unity SDK Reference 翻译版

热门文章

  1. R语言实战应用精讲50篇(三十一)-R语言入门系列-tidyverse数据分析流程
  2. MATLAB实战系列(三十一)-基于MATLAB的异步电机调速系统仿真
  3. 如何制作提交按钮,实现多条件筛选
  4. MATLAB中使用streamline函数绘制正负点电荷及它们构成的电偶极子的电场线分布图
  5. 数据挖掘系列(1)关联规则挖掘基本概念与Aprior算法
  6. java web nodejs_我的2013--从java web到nodejs
  7. matlab中step_使用MATLAB中bertool进行通信仿真
  8. 农发行:BI数据平台建设
  9. 学了redis我能拿你做什么
  10. 机器学习之手把手实现第1部分:支持向量机的原理和实现