当前位置 博文首页 > 广大菜鸟的博客:Leetcode 852. 山脉数组的峰顶索引(简答题)
class Solution {
// 暴力解法
public int peakIndexInMountainArray(int[] arr) {
for(int i=1;i<=arr.length-2;i++){
if(arr[i]>arr[i-1] && arr[i] >arr[i+1]){
return i;
}
}
return 0;
}
}
class Solution {
// 暴力解法
public int peakIndexInMountainArray(int[] arr) {
int i=0;
while(arr[i]<arr[i+1]) i++;
return i;
}
}
class Solution {
// 暴力解法
public int peakIndexInMountainArray(int[] arr) {
for(int i=0;i<=arr.length-2;i++){
if(arr[i]<arr[i+1]){
while(arr[i]<arr[i+1])//首先从山峰的左边开始扫描
i++;
if(arr[i]>arr[i+1]) // 确定是arr[i]>arr[i+1]
return i;
}
}
return -1;
}
}
class Solution {
// 暴力解法
public int peakIndexInMountainArray(int[] arr) {
int low=0,high=arr.length-1,mid;
while(low<high){
mid = (low+high)>>1;
if(arr[mid]<arr[mid+1])
low = mid+1;
else
high = mid;
}
return low;
}
}
class Solution {
// 暴力解法
public int peakIndexInMountainArray(int[] arr) {
// 1.[定左右]
int low=0,high=arr.length-1,mid;
// 2.[定区间]
while(low<=high){
// 3.[取中值]
mid = (low+high)>>1;
// 4.[进退]
if(arr[mid]<arr[mid+1])// 上坡
low = mid+1; // [爬坡]
else if(arr[mid-1]>arr[mid])// 下坡
high = mid -1;// [返回坡顶]
else
return mid;
}
// 5.[无功而返]
return -1;
}
}
cs