标签:
题目描述:
public class Solution {
public int FindPeakElement(int[] nums) {
if(nums.Length == 0){
return -1;
}
if(nums.Length == 1){
return 0;
}
if(nums.Length == 2){
return nums[0] > nums[1] ? 0 : 1;
}
if(nums[nums.Length - 1] > nums[nums.Length - 2]){
return nums.Length -1;
}
if(nums[0] > nums[1]){
return 0;
}
var l = 0;
var r = nums.Length - 1;
while(l < r - 1){
var m = (l + r) / 2;
if(nums[m] > nums[m-1] && nums[m] > nums[m+1]){
return m;
}
else if(nums[m] > nums[m-1] && nums[m] < nums[m+1]){ // increasing , go right
l = m;
}
else { // decreasing , go left
r = m;
}
}
return -1;
}
}版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/lan_liang/article/details/49055175