力扣: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
相关文章:
力扣:162. 寻找峰值(Python3)
题目: 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时…...
【Python】20大报告生成词云
这个我其实写过一篇类似的博客,但是那个的文件对象是.csv,对应到.docx文件的话,就不太适用了。如下: Python生成词云-CSDN博客 代码: import jieba import os import wordcloud import numpy as np from PIL import…...
目标检测YOLO实战应用案例100讲-基于无人机的轻量化目标检测系统设计
目录 前言 国内外研究现状 国外研究现状 国内研究现状...
ansible-第二天
ansible 第二天 以上学习了ping、command、shell、script模块,但一般不建议使用以上三个,因为这三个模块没有幂等性。举例如下: [rootcontrol ansible]# ansible test -a "mkdir /tmp/1234"[WARNING]: Consider using the file …...
【测试工具】UnixBench 测试
一、UnixBench 简介 UnixBench 原本叫做 BYTE UNIX benchmark suite。软件为 Unix 类的系统提供了一些基本的性能指标。通过不同的测试来测试系统不同方面的性能(2D,3D,CPU,内存等等)。这些测试的结果将和一些标准的系…...
软件测试金融项目,在测试的时候一定要避开的一些雷区
软件测试金融项目需要格外谨慎和专注,因为这些项目通常涉及大量的交易、用户隐私和其他敏感信息。以下是一些软件测试金融项目时需要关注的方面: 1. 数据保护 在测试金融项目时,必须确保用户数据和投资信息得到保护。测试人员必须确保测试环…...
顺序图——画法详解
百度百科的定义: 顺序图是将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时&…...
easyexcel==省市区三级联动
省市区三级联动,不选前面的就没法选后面的 package com.example.demoeasyexcel.jilian2; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; import org.apache.poi.ss.use…...
Linux进程控制(二)--进程等待(一)
前言:之前我们讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。 另外,进程一旦变成僵尸状态,那就刀枪不入,就连 kill -9 也无能为力࿰…...
【C++】C++11常用特性梳理
C11特性梳理 1. 列表初始化2. auto & decltype3. 右值引用3.1. 左右值引用比较3.2. 右值引用的意义3.3. 万能引用与完美转发3.4. 移动构造与移动赋值 4. default & delete5. 可变参数模板6. push_back 与 emplace_back7. lambda表达式7.1. 捕捉列表 8. function包装器8…...
修改iframe生成的pdf的比例
如图想要设置这里的默认比例 在iframe连接后面加上#zoom50即可,50是可以随便设置的,设置多少就是多少比例 <iframe src"name.pdf#zoom50" height"100%" width"100%"></iframe>...
C++之list的用法介绍
C之list的用法介绍 1)定义和初始化: #include <list> std::list<int> my_list; // 定义一个整数类型的list std::list<std::string> my_other_list {"apple", "banana", "cherry"}; // 初始化一个…...
Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper<T>, T> 学习总结
作用 当集成Mybatis-Plus 后,我们的大部分数据库操作都可以通过 XxxxxMapper ,同时 Mybatis-plus 在Mapper 提供基本操作方法的同时,也提供类基础的 serviceImpl 来帮助我们完成一些常见的基本操作。 使用 一般情况下,我们首先…...
yolov5 利用Labelimg对图片进行标注
首先打开yolov5-master,在data文件中新建一个文件夹来存放你需要跑的数据,例如我这次跑的是羽毛球,文件把文件取名为badminton。使用其他文件夹例如images也可以,就是跑多了以后不好整理,然后点击 选中刚刚你存放数据的…...
完整版付费进群带定位源码
看到别人发那些不是挂羊头卖狗肉,要么就是发的缺少文件引流的。恶心的一P 这源码是我付费花钱买的分享给大家,功能完整。 搭建教程 nginx1.2 php5.6--7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库(shujuk…...
华为L410上制作内网镜像模板01
原文链接:华为L410上制作离线安装软件模板01 hello,大家好啊,今天给大家带来一篇在内网搭建Apache服务器,用于安装完内网操作系统后,在第一次开机时候,为系统安装软件,今天给大家用WeChat举例&a…...
linuxC语言缓冲区及小程序的实现
文章目录 1.文件缓冲区1.1介绍1.2缓冲文件系统1.3冲刷函数fflush1.4认识linux下的缓冲区 2.linux小程序的实现2.1 回车\r和换行\n2.2倒计时程序2.3进度条小程序sleep/usleep代码运行结果 1.文件缓冲区 1.1介绍 为缓和 CPU 与 I/O 设备之间速度不匹配,文件缓冲区用以…...
MySQL数据库基本操作-DDL 数据库基础知识
目录标题 1、数据库操作1-1 查询所有数据库1-2 创建数据库1-3 选择使用那个数据库1-4 删除数据库 2、数据库表操作2-1 创建数据库表2-2 查看当前数据库所有表名称2-3 查看指定某个表的创建语句2-4 查看表结构2-5 删除表 3、修改表结构格式3-1 修改表添加列3-2 修改列名和类名3-…...
基于JavaWeb+SpringBoot+Vue摩托车商城微信小程序系统的设计和实现
基于JavaWebSpringBootVue摩托车商城微信小程序系统的设计和实现 源码传送入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 近年来,随着移动互联网的快速发展,电子商务越来越受到…...
idea代码快捷键Mac版
1、查询任何东西 双击 Shift2、文件内查找 Command F 3、文件内替换 Command R4、全局查找(根据路径) Command Shift F5、在当前文件跳转到某一行的指定处 Command L6、退回 / 前进到上一个操作的地方 Command Option 方向键左Command Opt…...
代码数据质量断崖式下滑?这4类隐性污染源正 silently 毁掉你的微调效果,附检测脚本开源
第一章:智能代码生成训练数据构建 2026奇点智能技术大会(https://ml-summit.org) 高质量、结构化、语义丰富的代码语料是智能代码生成模型能力的基石。训练数据不仅需覆盖主流编程语言的语法范式与工程实践,还需蕴含真实开发场景中的意图-实现映射关系…...
终极画中画体验:如何用Chrome扩展实现高效多任务视频观看
终极画中画体验:如何用Chrome扩展实现高效多任务视频观看 【免费下载链接】picture-in-picture-chrome-extension 项目地址: https://gitcode.com/gh_mirrors/pi/picture-in-picture-chrome-extension 你是否曾想过一边观看在线课程一边记笔记?或…...
RaiseCOM(瑞斯康达)交换机实战配置指南:从基础到高级
1. 认识RaiseCOM交换机:网络工程师的实用工具 第一次接触RaiseCOM交换机时,我发现它的操作界面和命令结构与思科、锐捷非常相似。这对于已经熟悉主流网络设备的工程师来说是个好消息——基本上半小时就能上手操作。RaiseCOM作为国产网络设备的代表品牌&a…...
音乐分类中的模糊逻辑与神经网络混合方法
1. 音乐分类中的模糊逻辑与神经模糊方法解析音乐分类一直是音频信号处理领域的重要课题。随着数字音乐的爆炸式增长,传统基于人工标注的分类方式已无法满足需求。我曾在多个音乐推荐系统项目中亲历这一痛点——当曲库规模达到百万级别时,人工分类不仅效率…...
中国信任度再居全球前列,但“信任孤岛“趋势浮现 | 美通社头条
、美通社消息:近日,国际领先的传播咨询机构爱德曼公关联合清华大学国家形象传播研究中心,在华发布了《2026年爱德曼信任度调查中国报告》。今年报告以"筑‘信为桥,跨越孤岛"为主题,聚焦全球社会在经历两极分…...
python python-semantic-release
# 关于Python Semantic Release的一些个人看法 平时做项目,版本号管理是个挺麻烦的事情。一开始可能觉得简单,手动改改__version__就行,但随着项目规模变大、协作的人变多,这个问题就复杂起来了。什么时候该升主版本号?…...
Android Studio ApkAnalyzer:从基础解析到逆向工程实战
1. Android Studio ApkAnalyzer:你的APK解剖刀 第一次接触ApkAnalyzer时,我正为一个卡顿的APK发愁。这个工具就像手术刀一样,帮我精准定位了问题——原来是一个3MB的未压缩图片藏在assets文件夹里。ApkAnalyzer是Android Studio内置的APK分析…...
Vue 3 技术演进全景
2026 年的 Vue 3 生态已彻底告别了“Vue 2 升级版”的定位,转而进化为一个高性能、编译时优化、深度 TypeScript 集成的现代化框架体系。核心变化不仅在于 API 的丰富,更在于底层渲染模型的颠覆。 一、Vue 3.5:响应式系统的“外星信号”与开发体验飞跃 Vue 3.5 是当前(202…...
如何在按需导入类时动态执行其内部代码
本文介绍如何利用 Python 3.7 的 __getattr__ 钩子机制,实现“仅在显式导入某个类时才执行其初始化逻辑”,避免模块级类定义时的副作用触发。 本文介绍如何利用 python 3.7 的 __getattr__ 钩子机制,实现“仅在显式导入某个类时才执行其…...
别再只盯着模型权重量化了!深入拆解KV Cache量化如何成为LLM推理服务的‘降本增效’关键
KV Cache量化:解锁大模型推理服务的成本与性能平衡之道 在大型语言模型(LLM)的商业化部署浪潮中,企业技术团队正面临一个关键矛盾:如何在不牺牲服务质量的前提下,显著降低推理服务的运营成本?当…...
