把一个递增排序数组的前几个元素移动至末尾,找出最小的数字。
例如:
[3,4,5,1,2]就是数组[1,2,3,4,5]的旋转。找出1。
function Minnum(arr){
if(!Array.isArray(arr) || arr.length <= 1) {
return arr;
}
var left = 0,
right = arr.length - 1
mid = left;
while(arr[left] >= arr[right]){
if(right-left === 1){
mid = right;
break;
}
mid = Math.floor((left + right)/2);
if(arr[left] === arr[right]&&arr[left] === arr[mid]){
//只能顺序查找,考虑[1,1,1,0,1];
}
if(arr[mid]>=arr[left]){
left = mid;
}
else if(arr[mid]<arr[left]){
right = mid;
}
}
return arr[mid];
}