0
点赞
收藏
分享

微信扫一扫

LeetCode: 162. Find Peak Element

Villagers 2022-12-06 阅读 111


LeetCode: 162. Find Peak Element

LeetCode: 162. Find Peak Element_数组

题目描述

A peak element is an element that is greater than its neighbors.
Given an input array nums, where ​​​nums[i] ≠ nums[i+1]​​, find a peak element and return its index.

The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.

You may imagine that ​​nums[-1] = nums[n] = -∞​​.

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: 1 or 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.

题目大意:找出给定数组中大于相邻的元素的元素下标。

解题思路

遍历一遍, 判断当前元素和相邻元素的大小关系。

AC 代码

class Solution {
public:
int findPeakElement(vector<int>& nums) {
for(size_t i = 0; i < nums.size(); ++i)
{
int leftFlag = false, rightFlag = false;
if(i == 0 || nums[i-1] < nums[i]) leftFlag = true;
if(i+1 == nums.size() || nums[i+1] < nums[i]) rightFlag = true;

if(leftFlag && rightFlag) return i;
}

return -1;
}
};


举报

相关推荐

0 条评论