forked from prakashshuklahub/Interview-Questions
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path162 Find Peak Element
More file actions
38 lines (25 loc) · 925 Bytes
/
162 Find Peak Element
File metadata and controls
38 lines (25 loc) · 925 Bytes
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
// BRUTE FORCE CODE
public int findPeakElement(int[] nums) {
if(nums.length==1)return 0;
for(int i=0;i<nums.length;i++){
if(i==0 && nums[0]>nums[1])return 0;
if(i==nums.length-1 && nums[i]>nums[i-1])return nums.length-1;
if(nums[i]>nums[i+1] && nums[i]>nums[i-1])return i;
}
return -1;
}
// OPTIMIZE CODE
public int findPeakElement(int[] nums) {
if(nums.length==1)return 0;
int low = 0 , high = nums.length-1;
while(low<high){
int mid = (low+high)/2;
if((mid==0 || nums[mid]>nums[mid-1]) && (mid==nums.length-1 || nums[mid]>nums[mid+1]))return mid;
if(nums[mid]>nums[mid+1]){
high = mid;
}else{
low = mid+1;
}
}
return high;
}