博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode之Find Peak Element
阅读量:2343 次
发布时间:2019-05-10

本文共 728 字,大约阅读时间需要 2 分钟。

找出峰值,最直观的的办法是直接遍历数组直到找到峰值,时间复杂度为O(n),代码:
if(n == 1)          return 0;     if(nums[0] > nums[1])          return 0;     if(nums[n-1] > nums[n-2])          return n-1;     for(int i = 1; i < n-1; i ++)          if(nums[i] > nums[i-1] && nums[i] > nums[i+1])               return i;
二分查找,时间复杂度O(nlogn):
class Solution(object):        return self.findPeakEleByBinarySearch(nums, 0, len(nums) - 1)    def findPeakEleByBinarySearch(self, nums, start, end):        if start == end:            return start        mid = int((end - start) /2) + start        if nums[mid] > nums[mid + 1]:            return self.findPeakEleByBinarySearch(nums, start, mid)        else:            return self.findPeakEleByBinarySearch(nums, mid + 1, end)

转载地址:http://embvb.baihongyu.com/

你可能感兴趣的文章
解决文件提示: /bin/ksh^M: bad interpreter: bad interpreter:No such file or directory
查看>>
ajaxanywhere jsp 使用
查看>>
jquery的使用
查看>>
如何静态化JSP页面
查看>>
XML 与 Java 技术: 用 Castor 进行数据绑定
查看>>
Python未知领域系列:(附Python学习教程+Python学习路线)Python高级教程之面向对象
查看>>
盘点Python 面向对象编程最容易被忽视的知识点
查看>>
Python:一个可以套路别人的python小程序
查看>>
用Python告诉你:这些年,我们点过的的那些外卖
查看>>
如何美观地打印Python对象?这个标准库可以简单实现
查看>>
写作路上的这些小成绩,铸就了一个不平庸的程序员
查看>>
程序员找工作的个人经验教训以及注意事项
查看>>
2019 编程语言排行榜:Java、Python 龙争虎斗!谁又屹立不倒
查看>>
拥有10年编程经验的你,为什么还一直停留在原地
查看>>
Flask vs Django,Python Web开发用哪个框架更好
查看>>
Python说:常见的数据分析库有哪些
查看>>
Python教程:Python数据类型之字典
查看>>
Python基础教程:python的数据类型
查看>>
Python学习教程:另辟蹊径,appium抓取app应用数据了解一下
查看>>
Python学习教程:用Python进行金融市场文本数据的情感计算
查看>>