题目简单明了,就是给你一个不是递减的数组,经过“旋转”后让你求最小的值
这时,你要是想着直接遍历一遍数组不久OK了,那这绝不是面试公司想要考你的东西,这时我们应该想到题目给的条件
数组被分为两个非递减的数组了,这时可以采用二分法,代码非常简单,就是使用二分。
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
int index1 = 0;
int index2 = array.length-1;
int indexmid = 0;
if(array.length==0)
return 0;
if(array.length==1)
return array[0];
while((index2 - index1)!=1)
{
indexmid = (index1 + index2)/2;
if(array[index1]>array[indexmid])
index2 = indexmid;
else
index1 = indexmid;
}
return array[index2];
}
}