热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LeetCode162.查找峰值(C++和Python实现)

峰值元素是指其数值高于其左右相邻元素的元素。本题要求在给定的无重复相邻元素的数组中找到一个峰值元素,并返回其索引。若数组存在多个峰值,则返回任意一个峰值的位置。

峰值元素定义为其值大于其左右相邻值的元素。在本问题中,你需要处理一个名为 nums 的输入数组,其中 nums[i] ≠ nums[i+1],即数组中的任何两个连续元素都是不同的。任务是找到一个峰值元素并返回其索引。

如果数组中有多个峰值,返回任何一个峰值的索引均可接受。此外,题目规定 nums[-1] = nums[n] = -∞,这意味着数组的两端被视为无限小,从而保证了至少存在一个峰值。

示例 1:

输入: nums = [1,2,3,1]
输出: 2
解释: 3 是峰值元素,因为它的值大于其左右相邻的元素,函数应返回索引 2。

示例 2:

输入: nums = [1,2,1,3,5,6,4]
输出: 1 或 5
解释: 函数可以返回索引 1,其峰值元素为 2;也可以返回索引 5,其峰值元素为 6。两种情况都满足题目的要求。

C++ 实现:

class Solution {
public:
int findPeakElement(vector& nums) {
int n = nums.size();
int left = 0;
int right = n - 1;
while (left int mid = (left + right) / 2;
if (nums[mid] left = mid + 1;
} else {
right = mid;
}
}
return left;
}
};

Python 实现:

class Solution:
def findPeakElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n = len(nums)
left = 0
right = n - 1
while left mid = (left + right) // 2
if nums[mid] left = mid + 1
else:
right = mid
return left


推荐阅读
  • 本文将指导你如何通过自定义配置,使 Windows Terminal 中的 PowerShell 7 更加高效且美观。我们将移除默认的广告和提示符,设置快捷键,并添加实用的别名和功能。 ... [详细]
  • 本文详细介绍了Python的multiprocessing模块,该模块不仅支持本地并发操作,还支持远程操作。通过使用multiprocessing模块,开发者可以利用多核处理器的优势,提高程序的执行效率。 ... [详细]
  • ECharts图表绘制函数集
    本文档提供了使用ECharts库创建柱状图、饼图和双折线图的JavaScript函数。每个函数都详细列出了参数说明,并通过示例展示了如何调用这些函数以生成不同类型的图表。 ... [详细]
  • 本文详细介绍了Python中的流程控制与条件判断技术,包括数据导入、数据变换、统计描述、假设检验、可视化以及自定义函数的创建等方面的内容。 ... [详细]
  • 本文探讨了如何从文本文件中正确读取一行数据,并将其赋值给C语言中的变量,同时解决了常见的错误和注意事项。 ... [详细]
  • 本文介绍了一种算法,用于在一个给定的二叉树中找到一个节点,该节点的子树包含最大数量的值小于该节点的节点。如果存在多个符合条件的节点,可以选择任意一个。 ... [详细]
  • Nibblestutotials.net教程 – Blend  Silverlight1系列之Button Basic
    Basic:createonebutton文中三部分所用资源及代码下载:part1,part2,part3Buttonsbasicpart1:drawingNibbl ... [详细]
  • 本文详细介绍了如何利用go-zero框架从需求分析到最终部署至Kubernetes的全过程,特别聚焦于微服务架构中的网关设计与实现。项目采用了go-zero及其生态组件,涵盖了从API设计到RPC调用,再到生产环境下的监控与维护等多方面内容。 ... [详细]
  • 本文介绍如何使用Java实现AC自动机(Aho-Corasick算法),以实现高效的多模式字符串匹配。文章涵盖了Trie树和KMP算法的基础知识,并提供了一个详细的代码示例,包括构建Trie树、设置失败指针以及执行搜索的过程。 ... [详细]
  • 本文探讨了如何在微信小程序中有效更新深层嵌套的对象数组中的特定字段值,特别是在页面初始化加载时对首个对象中的grade属性进行重新赋值的方法。 ... [详细]
  • 搜索引擎架构设计
    本文详细介绍了搜索引擎的主要组成部分,包括爬虫模块、索引模块和搜索模块。其中,索引模块采用了高效的二元分词技术进行数据存储,而搜索模块则基于ASP.NET框架实现了一个用户友好的界面和高效的搜索算法。 ... [详细]
  • 图神经网络模型综述
    本文综述了图神经网络(Graph Neural Networks, GNN)的发展,从传统的数据存储模型转向图和动态模型,探讨了模型中的显性和隐性结构,并详细介绍了GNN的关键组件及其应用。 ... [详细]
  • 深入解析达内Java基础练习题
    本文精选了几道典型的Java基础题目,旨在帮助学习者巩固基础知识,提升编程技能。通过这些题目,你可以检验自己的Java基础掌握程度。 ... [详细]
  • 将数组的所有元素递增 1 的 Java 程序 ... [详细]
  • 本文通过两个具体案例——共同好友查找和线段重叠分析,展示了如何利用Scala编程语言解决实际问题。案例一探讨了如何在社交网络中找出两个用户之间的共同好友;案例二则深入解析了如何计算多条线段之间的重叠情况。 ... [详细]
author-avatar
Adonis-唯一
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有