【LeetCode】#162寻找峰值(Find Peak Element)
题目描述
峰值元素是指其值大于左右相邻值的元素。
给定一个输入数组 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。
Description
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
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.
解法
class Solution {
public int findPeakElement(int[] nums) {
int res = 0;
if(nums.length==1){
return 0;
}
if(nums[0]>nums[1]){
return 0;
}
for(int i=1; i<nums.length; i++){
if(i==nums.length-1 && nums[i]>nums[i-1]){
return i;
}
if(nums[i]>nums[i-1] && nums[i]>nums[i+1]){
res = i;
break;
}
if(nums[i+1]<nums[i]){
i++;
}
}
return res;
}
}
本文介绍了一种寻找峰值元素的算法,峰值元素是指其值大于左右相邻值的元素。文章详细解析了如何在一个输入数组中找到这样的元素,并通过示例说明了算法的应用。
246

被折叠的 条评论
为什么被折叠?



