华为OD机试真题 Java 实现【寻找峰值】【牛客练习题】

news2024/11/18 8:26:20

一、题目描述

给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。

1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于;
2.假设 nums[-1] = nums[n] = -\infty−∞;
3.对于所有有效的 i 都有 nums[i] != nums[i + 1];
4.你可以使用O(logN)的时间复杂度实现此问题吗;

二、输入描述

如输入[3,4,2,3,5,6,2]时,会形成两个山峰,一个是索引为1,峰值为4的山峰,另一个是索引为5,峰值为6的山峰。

如下图所示:

在这里插入图片描述

三、输出描述

1

四、解题思路

  1. 读取输入的数组nums;
  2. 获取数组的长度len;
  3. 如果数组长度为1,则直接返回0作为峰值元素的索引;
  4. 如果数组的首元素大于第二个元素,说明首元素即为峰值元素,返回0作为索引;
  5. 如果数组的尾元素大于倒数第二个元素,说明尾元素即为峰值元素,返回len-1作为索引;
  6. 遍历数组的第二个元素到倒数第二个元素(索引范围为1到len-2):
  7. 如果当前元素大于

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/611468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

被迫在小公司熬了2年,现在我终于进了腾讯测试岗...

其实两年前校招的时候就往腾讯投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里,想着总有一天会再次挑战的。 其实这两年除了工作以外,其余时间基本上都在学习,打磨自己…

Ubuntu系统镜像下载,国内镜像站大全(山大/清华/阿里/浙大/中科大...)

装Ubuntu,是很多理工科同学入门的第一个挑战,首先我们就需要找到一个能用的iso镜像,根据你的网络环境的不同,不同的站点下载速度会不一样,下面列举一下几个比较好用的,都是来自Ubuntu官方推荐国内镜像站链接…

一起来学习Vue2吧

虽然Vue3已经出来好一阵子了,但就目前而言,Vue2在市场上还是会占一大部分的,因为一些老项目是用Vue2写的,后期维护也是需要Vue2,而且学会Vue2,Vue3你也会的差不多了,到后面稍微看一下理解一下Vu…

[5]PCB设计实验|卷积神经网络基础|零基础入门深度学习(4) 卷积神经网络|14:00~14:55

资料来源:零基础入门深度学习(4) - 卷积神经网络 - 作业部落 Cmd Markdown 编辑阅读器 目录 1. Relu激活函数 2. 全连接网络VS卷积网络 3. 卷积神经网络 3.1 网络架构 3.2 三维的层结构 4. 卷积神经网络输出值的计算 5. Pooling层输出值的计算 6. 全连…

【自动化测试基础】Appium自动化环境搭建保姆级教程

APP自动化测试运行环境比较复杂,稍微不注意安装就会失败。我见过不少朋友,装了1个星期,Appium 的运行环境还没有搭好的。 搭建环境本身不是一个有难度的工作,但是 Appium 安装过程中确实存在不少隐藏的比较深的坑,如果…

开源赋能 普惠未来|腾讯寄语2023开放原子全球开源峰会

腾讯长期秉承科技向善的宗旨,通过通信和社交服务连接全球逾 10 亿人,提供云计算、广告、金融科技等一系列企业服务。 作为开放原子开源基金会(以下简称“基金会”)发起人之一,腾讯坚定拥抱开源,全力支持开…

【最新计算机毕业设计 本科 大专 游戏方向 源码】

2022年 - 2023年 最新计算机毕业设计 本科 大专 游戏方向 源码 下载前必看:纯小白教程,unity两种格式资源的使用方法,1打开现有项目、2导入package 大专毕设源码:数媒专业、计算机专业、电子专业通用50多款大专毕设小游戏【源码】…

转行程序员,自学可以吗?35岁会被裁员吗?

大家好,欢迎来到停止重构的频道。 本期我们聊一些技术以外的分享。 一个非科班出身的人转行程序员难吗? 自学可以吗? 我也不是计算机相关专业毕业的,以下聊的都是我的一些真实经历,希望能给想要进入软件行业的非科班…

Centos7安装下载的mysql8+

1.官网下载 MySQL 安装包 1.1选择版本及下载 1、官网地址 https://dev.mysql.com/downloads/mysql/ 2、选择下载 MySQL 的 Linux 系统版本 Select Operating System: 选择 Red Hat ,CentOS 是基于红帽的,Select OS Version: 选择 linux 7 3、选择要下…

51单片机银行自助排队叫号系统VIP热敏打印功能DY-SV17F语音播报

实践制作DIY- GC0138-银行自助排队叫号系统VIP 基于51单片机设计---银行自助排队叫号系统VIP 二、功能介绍: STC89C52最小系统板0.96寸OLED显示器DY-SV17F语音串口语音播报模块DS1302北京时间热敏打印机1个业务选择(取钱或者存钱)1个普通取号…

chatgpt赋能python:Python后门:你需要知道的一切

Python后门:你需要知道的一切 Python是一种广泛使用的编程语言,由于其易学易用、灵活且高效的特点,越来越多的企业和组织采用Python构建应用程序和Web应用。然而,正因为Python的方便性,也使其成为攻击者植入后门程序的…

机器学习 | 聚类问题

一、K均值聚类 这里我们用鸢尾花数据及进行聚类分析,这种含有标签数据的数据集,只要不调用标签数据,就可以为无监督学习所采用。鸢尾花数据具有4个特征,为了可视化这里选取前两个特征进行聚类分析并指定聚为3类。 #导入库 impor…

大型 3D 互动开发和优化实践 | 京东云技术团队

开发背景 得益于“元宇宙”概念在前段时间的爆火,各家公司都推出了使用 3D 场景的活动或频道。 3D 场景相比传统的 2D 页面优点是多一个维度,同屏展示的内容可以更多,能完整的展示物体、商品的信息。 相应带来的缺点是用户使用方式改变&…

yolov8模型训练结果分析以及如何评估yolov8模型训练的效果

1.运行结果目录 一、 confusion_matrix_normalized.png和confusion_matrix.png 混淆矩阵 混淆矩阵以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。其中矩阵的行表示真实值,矩阵的列表示预测值。 TP(True Positiv…

python 创建Django项目基础

一. 安装Django pip install django 默认安装最新版本二. 创建一个Django项目 三、运行项目 创建好Django项目后,我们就可以运行了 使用命令 python manage.py runserver四、目录结构 五、创建一个文件views用来存放方法 在创建的文件中写入以下方法 def sa…

使用GCN根据颗粒图像预测对应性能

之前做一个小实验写的代码,本想创建个git repo,想了想好像没必要,直接用篇博文记录一下吧。 对应资源 : https://download.csdn.net/download/rayso9898/87865298 0. 大纲 0.1 代码说明 dataGeneration.py -> RSA生成n张图像&…

【Springboot】| 阿里云发送短信验证码,你会了吗?

目录 🦁 题外话🦁 需要准备的东西🦁 进入主题1. 添加依赖2. 配置yaml文件3. 创建阿里云客户端4. 编写发送短信方法5. 完整代码展示6. 测试 🦁 场景实操1. 编写生成验证码工具类2. 保存到redis操作3. 编写发送验证码短信4. 发送登录…

大数据:spark共享广播变量,累加器

大数据:共享变量 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学…

三面阿里被挂,竟获内推名额,历经 5 面拿下口碑 offer...

每一个互联网人心中都有一个大厂梦,百度、阿里巴巴、腾讯是很多互联网人梦寐以求的地方,而我也不例外。但是,BAT 等一线互联网大厂并不是想进就能够进的,它对人才的技术能力和学历都是有一定要求的,所以除了学历以外&a…

STM32单片机WIFI物联网厨房燃气安全系统超声波人员检测MQ4燃气报警

实践制作DIY- GC0140-WIFI物联网厨房燃气安全系统 基于STM32单片机设计---WIFI物联网厨房燃气安全系统 二、功能介绍: 硬件组成:STM32F103C系列最小系统继电器模拟阀门MQ-4然气传感器HSR04超声波测距LCD1602显示器ESP8266-WIFI模块蜂鸣器多个按键 1.有…