162. Find Peak Element
Last updated
Last updated
/**
* Time complexity :
* Space complexity :
*/
class Solution {
public int findPeakElement(int[] nums) {
for(int i = 0; i < nums.length-1; i++) {
if(nums[i] > nums[i+1]) {
return i;
}
}
return nums.length-1;
}
}/**
* Time complexity :
* Space complexity :
*/
public class Solution {
public int findPeakElement(int[] num) {
int max = num[0];
int index = 0;
for(int i=1; i<=num.length-2; i++){
int prev = num[i-1];
int curr = num[i];
int next = num[i+1];
if(curr > prev && curr > next && curr > max){
index = i;
max = curr;
}
}
if(num[num.length-1] > max){
return num.length-1;
}
return index;
}
}/**
* Time complexity :
* Space complexity :
*/
public class Solution {
public int findPeakElement(int[] nums) {
return search(nums, 0, nums.length - 1);
}
public int search(int[] nums, int l, int r) {
if (l == r)
return l;
int mid = (l + r) / 2;
if (nums[mid] > nums[mid + 1])
return search(nums, l, mid);
return search(nums, mid + 1, r);
}
}/**
* Time complexity :
* Space complexity :
*/
public class Solution {
public int findPeakElement(int[] nums) {
int l = 0, r = nums.length - 1;
while (l < r) {
int mid = (l + r) / 2;
if (nums[mid] > nums[mid + 1])
r = mid;
else
l = mid + 1;
}
return l;
}
}