leetcode162. 寻找峰值 变种二分见过吗

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

给定一个输入数组 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。
说明:

你的解法应该是 O(logN) 时间复杂度的。

思路:

二分,具体见代码。(一直保持夹逼的趋势,搜出一个数字即可)

public class Solution {public int findPeakElement(int[] nums) {int l = 0, r = nums.length - 1;while (l < r) {int mid = (l + r) / 2;if (nums[mid] > nums[mid + 1])r = mid;elsel = mid + 1;}return l;}
}

 

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

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

相关文章

(十九)TCPIP面试宝典-进入大厂必备总结(上)

TCP 作为传输层的协议,是一个IT工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。 实际上这篇文章相当于是复习之前的网络基础部分。只不过这篇文章的提问方式更灵活,也是让读者们懂得变通,更熟悉TCP。 TCP 和 U…

leetcode348. 判定井字棋胜负 好麻烦的代码

请在 n n 的棋盘上&#xff0c;实现一个判定井字棋&#xff08;Tic-Tac-Toe&#xff09;胜负的神器&#xff0c;判断每一次玩家落子后&#xff0c;是否有胜出的玩家。 在这个井字棋游戏中&#xff0c;会有 2 名玩家&#xff0c;他们将轮流在棋盘上放置自己的棋子。 在实现这…

C++:17---sizeof运算符

功能:以字节位单位,返回一个表达式或一个数据类型所占的字节数返回值类型:是size_t类型sizeof有无括号:sizeof不加括号,后面不可以直接跟数据类型sizeof加括号,后面既可以跟表达式也可以跟数据类型注意事项对引用类型执行sizeof运算得到被引用对象所占空间的大小对指针执…

leetcode345. 反转字符串中的元音字母

编写一个函数&#xff0c;以字符串作为输入&#xff0c;反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 思路&#xff1a…

Redis:10---List对象

一、列表对象概述列表类型是用来存储多个有序的字符串&#xff0c;一个列表最多可以存储多个元素。列表是一种比较灵活的数据结构&#xff0c;它可以充当栈和队列的角色&#xff0c;在实际开发上有很多应用场景特点&#xff1a;一个列表可以存储多个字符串&#xff0c;相同元素…

Redis:09---Hash对象

一、哈希对象简介几乎所有的编程语言都提供了哈希&#xff08;hash&#xff09;类型&#xff0c;它们的叫法可能是哈希、字典、关联数组哈希又称散列在Redis中&#xff0c;哈希类型是指键值本身又是一个键值对结构&#xff0c;形如value{{field1&#xff0c;value1}&#xff0c…

leetcode329. 矩阵中的最长递增路径

给定一个整数矩阵&#xff0c;找出最长递增路径的长度。 对于每个单元格&#xff0c;你可以往上&#xff0c;下&#xff0c;左&#xff0c;右四个方向移动。 你不能在对角线方向上移动或移动到边界外&#xff08;即不允许环绕&#xff09;。 示例 1: 输入: nums [ [9,9,…

Query Ajax 实例 ($.ajax、$.post、$.get)

Jquery在异步提交方面封装的很好&#xff0c;直接用AJAX非常麻烦&#xff0c;Jquery大大简化了我们的操作&#xff0c;不用考虑浏览器的诧异了。 推荐一篇不错的jQuery Ajax 实例文章&#xff0c;忘记了可以去看看&#xff0c;地址为&#xff1a;http://www.cnblogs.com/yeer/a…

C++:18---const关键字(附常量指针、指针常量、常量指针常量)

一、const变量的一些基本特点 ①const修饰的变量不能被修改const int a=10; a=20;//错误②因为const修饰的变量不能被修改,所以必须被初始化int a=10; const int b=a; //正确 const int c=10; //正确③const修饰的变量可以赋值给其他值const int a=10; int b=a;//正确④可以有…

C:01---数据类型与ASCII

一、整型 int 取值范围:-32768~32767unsigned int 取值范围:0~65535short /short int 取值范围:比int小unsigned short 无符号短整型long 长整型定义时,后面加上l或L有符号与无符号数: unsigned:无符号数,一般用来表示数据signed:有符号数,一般用来表示数字整型占…

leetcode330. 按要求补齐数组 顶级难度玄学贪心

给定一个已排序的正整数数组 nums&#xff0c;和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中&#xff0c;使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。 示例 1: 输入: nums [1,3], …

C:02---scanf、printf

一、printf 控制符 ①精度控制:输入小数点后m位(%.mf)。右对齐5位,保留小数点后m位(%d.mf)%f、%lf默认输出6位小数②宽度:%md(打印m为,右对齐,多出m位照常打印)。%-md(打印m位,左对齐,多出m位照常打印)③长度:h表示短(打印短整型short:%hd),l表示长(打印长…

C++:20---成员变量初始化方式

成员变量初始化有三种方式: 在构造函数体内赋值初始化在自定义的公有函数体中赋值初始化(一般用于成员变量的初始化)在构造函数的成员初始化列表初始化一、构造函数体内初始化 说明:在构造函数体内的初始化方式,本质是是为成员变量赋值,而不是真正意义上的初始化,这点要…

leetcode339. 嵌套列表权重和

给定一个嵌套的整数列表&#xff0c;请返回该列表按深度加权后所有整数的总和。 每个元素要么是整数&#xff0c;要么是列表。同时&#xff0c;列表中元素同样也可以是整数或者是另一个列表。 示例 1: 输入: [[1,1],2,[1,1]] 输出: 10 解释: 因为列表中有四个深度为 2 的 1…

C++:19---this指针

一、this指针介绍 概念:this指针是成员函数的一个隐式参数,在类中本质上就是对象的指针(常量指针)特点:在成员函数中可通过this指针区别成员变量与形参变量this可以显式调用示例代码:class Cperson{private:int age;float height;public:void InitPerson(int age,float hei…

leetcode346. 数据流中的移动平均值

给定一个整数数据流和一个窗口大小&#xff0c;根据该滑动窗口的大小&#xff0c;计算其所有整数的移动平均值。 示例: MovingAverage m new MovingAverage(3); m.next(1) 1 m.next(10) (1 10) / 2 m.next(3) (1 10 3) / 3 m.next(5) (10 3 5) / 3 思路&#xff1…

(二十)TCPIP面试宝典-进入大厂必备总结(中)

TCP 作为传输层的协议,是一个IT工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。 实际上这篇文章相当于是复习之前的网络基础部分。只不过这篇文章的提问方式更灵活,也是让读者们懂得变通,更熟悉TCP。 前两篇文…

leetcode263. 丑数

编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例 1: 输入: 6 输出: true 解释: 6 2 3 示例 2: 输入: 8 输出: true 解释: 8 2 2 2 示例 3: 输入: 14 输出: false 解释: 14 不是丑数&#xff0c;因为它包含了另外一个质因数 7。…

(二十一)TCPIP面试宝典-进入大厂必备总结(下)

TCP 作为传输层的协议,是一个IT工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。 实际上这篇文章相当于是复习之前的网络基础部分。只不过这篇文章的提问方式更灵活,也是让读者们懂得变通,更熟悉TCP。 上一篇文…

C++:23 再议const的用法(下)

上一篇文章折腾了一波粉丝,那么这一篇文章稍微温柔一些。 我主要开始说如何正确使用const 1.不能将const 修饰的任何对象、引用和指针作为赋值表达式的左值。 const int cx=100; const int & rcx=cx; const int * pcx=&cx; cx=200; //error rcx=200; //error *pcx=200…