当前位置: 首页> 财经> 访谈 > 开发微信小程序收费_ab模板网_深圳seo排名优化_搜狗关键词排名查询

开发微信小程序收费_ab模板网_深圳seo排名优化_搜狗关键词排名查询

时间:2025/7/9 21:14:10来源:https://blog.csdn.net/xxxmmc/article/details/143727928 浏览次数:0次
开发微信小程序收费_ab模板网_深圳seo排名优化_搜狗关键词排名查询

给定一个数组,找到山峰元素
https://leetcode.com/problems/find-peak-element/description/

Input: nums = [1,2,3,1]
Output: 2
Explanation: 3 is a peak element and your function should return the index number 2.

解答:
这道题本质上是从左到右,找到最后一个大于左边元素的位置,那就可以二分作答了。注意要判断一下mid是否大于0。如果不判也是对的,但是这是因为模版 r − l + 1 r - l +1 rl+1带来的好处,恰好能处理所有的特殊情况。
为了防止数组越界,添加mid > 0 更安全

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

算法复杂度 O ( l o g n ) O(logn) O(logn)
空间复杂度 O ( 1 ) O(1) O(1)

关键字:开发微信小程序收费_ab模板网_深圳seo排名优化_搜狗关键词排名查询

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: