-
Notifications
You must be signed in to change notification settings - Fork 1
/
Day 13.2.txt
71 lines (56 loc) · 1.7 KB
/
Day 13.2.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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 findPeakElement(int[] n) {
if(n.length==1)
return 0;
else if(n.length==2)
{
if(n[0]>n[1])
return 0;
else
return 1;
}
else
{
int i,k=n[0],k1=0;
for(i=1;i<n.length;i++)
{
if(k>n[i])
break;
else if(i==n.length-1)
{
if(n[i]>k)
{
k=n[i];
k1=i;
}
}
else
{
if(n[i]>n[i-1]&&n[i]>n[i+1])
{
k=n[i];
k1=i;
}
}
}
return k1;
}
}
}