当前位置: 首页 > news >正文

力扣:162. 寻找峰值(Python3)

题目:

峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞ 。

你必须实现时间复杂度为 O(log n) 的算法来解决此问题。

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

输入:nums = [1,2,3,1]
输出:2
解释:3 是峰值元素,你的函数应该返回其索引 2。


示例 2:

输入:nums = [1,2,1,3,5,6,4]
输出:1 或 5

解释:你的函数可以返回索引 1,其峰值元素为 2;或者返回索引 5, 其峰值元素为 6。

解法:

nums头尾加入负无穷,遍历每个元素,判断是否比左右大。

知识点:

1.无穷:float('inf') 表示正无穷;-float('inf') 或 float('-inf') 表示负无穷。其中,inf 均可以写成 Inf。

代码:

class Solution:def findPeakElement(self, nums: List[int]) -> int:length = len(nums)nums = [float('-inf')] + nums + [float('-inf')]for index in range(1, length + 1):if nums[index] > nums[index - 1] and nums[index] > nums[index + 1]:return index - 1

http://www.lryc.cn/news/226102.html

相关文章:

  • 【Python】20大报告生成词云
  • 目标检测YOLO实战应用案例100讲-基于无人机的轻量化目标检测系统设计
  • ansible-第二天
  • 【测试工具】UnixBench 测试
  • 软件测试金融项目,在测试的时候一定要避开的一些雷区
  • 顺序图——画法详解
  • easyexcel==省市区三级联动
  • Linux进程控制(二)--进程等待(一)
  • 【C++】C++11常用特性梳理
  • 修改iframe生成的pdf的比例
  • C++之list的用法介绍
  • Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper<T>, T> 学习总结
  • yolov5 利用Labelimg对图片进行标注
  • 完整版付费进群带定位源码
  • 华为L410上制作内网镜像模板01
  • linuxC语言缓冲区及小程序的实现
  • MySQL数据库基本操作-DDL 数据库基础知识
  • 基于JavaWeb+SpringBoot+Vue摩托车商城微信小程序系统的设计和实现
  • idea代码快捷键Mac版
  • 分享76个Python管理系统源代码总有一个是你想要的
  • Springboot养老院信息管理系统的开发-计算机毕设 附源码27500
  • 在虚拟机中安装vim和net-tools,mysql
  • 【Excel】函数sumif范围中符合指定条件的值求和
  • k8s上对Pod的管理部分详解
  • 4.4.2 结构可以将 string类作为成员吗
  • npm install 安装总结
  • 二十三种设计模式全面解析-组合模式与享元模式的结合应用:实现对象的共享和高效管理
  • jenkins分步式构建环境(agent)
  • 前端开发学习指南
  • 环境变量小节