leetcode162. Find Peak Element
2021/9/27 23:14:37
本文主要是介绍leetcode162. Find Peak Element,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- Find Peak Element
A peak element is an element that is strictly greater than its neighbors.
Given an integer array nums, find a peak element, and return its index. If the array contains multiple peaks, return the index to any of the peaks.
You may imagine that nums[-1] = nums[n] = -∞.
You must write an algorithm that runs in O(log n) time.
Example 1:
Input: nums = [1,2,3,1]
Output: 2
Explanation: 3 is a peak element and your function should return the index number 2.
Example 2:
Input: nums = [1,2,1,3,5,6,4]
Output: 5
Explanation: Your function can return either index number 1 where the peak element is 2, or index number 5 where the peak element is 6.
Constraints:
1 <= nums.length <= 1000
-231 <= nums[i] <= 231 - 1
nums[i] != nums[i + 1] for all valid i.
class Solution { public: int binarySearch(int left,int right,vector<int>& nums){ int mid=(left+right)/2; if(nums[mid]>nums[mid+1]&&nums[mid]>nums[mid-1]){ return mid; } if(nums[mid]<nums[mid+1]){ return binarySearch(mid,right,nums); } else{ return binarySearch(left,mid+1,nums); } } int findPeakElement(vector<int>& nums) { int right=nums.size()-1,left=0; int mid=(right+left)/2; if(nums.size()==1){ return 0; } else if(nums[0]>nums[1]){ return 0; } else if(nums[nums.size()-1]>nums[nums.size()-2]){ return nums.size()-1; } else{ while(!(nums[mid]>nums[mid+1]&&nums[mid]>nums[mid-1])){ if(nums[mid]<nums[mid+1]){ left=mid; } else{ right=mid+1; } mid=(left+right)/2; } return mid; } } };
- 一开始读错题了,以为输出的是元素,实际上要输出位置
- 之前写了前面的函数,内存占用太高了,改用while循环了
想知道该怎样不每次都输入整个vector时也能用递归
题解三种方法,在这里,前两种都是O(n)时间复杂度,第三种二分法和我的应该差不多,没细看,有一些没用过的操作需要看看
这篇关于leetcode162. Find Peak Element的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-12深入理解 ECMAScript 2024 新特性:Map.groupBy() 分组操作
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势