"Coding Interview Guide" -- 在数组中找到一个局部最小的位置
2020-12-13 01:55
标签:pre 定义 coding -- 存在 函数 ide cal || 【题目】 定义局部最小的概念:arr长度为1时,arr[0]是局部最小;arr的长度为N(N > 1)时,如果arr[0]
给定无序数组arr,已知arr中任意两个相邻的数都不相等。写一个函数,只需返回arr中任意一个局部最小出现的位置即可 二分查找并不是数组有序时才能使用,只要你能确定二分两侧的某一侧肯定存在你要找的内容,就可以使用二分查找 来源:左程云老师《程序员代码面试指南》 "Coding Interview Guide" -- 在数组中找到一个局部最小的位置 标签:pre 定义 coding -- 存在 函数 ide cal || 原文地址:https://www.cnblogs.com/latup/p/11018817.html
1 public int getLocalMinIndex(int[] arr)
2 {
3 if(arr == null || arr.length == 0)
4 {
5 return -1;
6 }
7 if(arr.length == 1 || arr[0] ])
8 {
9 return 0;
10 }
11 if(arr[arr.length - 1] ])
12 {
13 return arr.length - 1;
14 }
15 int left = 1;
16 int right = arr.length - 2;
17 while(left right)
18 {
19 int mid = (left + right) / 2;
20 if(arr[mid] > arr[mid - 1])
21 {
22 right = mid - 1;
23 }
24 else if(arr[mid] > arr[mid + 1])
25 {
26 left = mid + 1;
27 }
28 else
29 {
30 return mid;
31 }
32 }
33 return left;
34 }
文章标题:"Coding Interview Guide" -- 在数组中找到一个局部最小的位置
文章链接:http://soscw.com/essay/24489.html