您的位置:首页 > 其它

旋转数组中的最小数字

2017-08-08 23:39 218 查看
把一个递增排序数组的前几个元素移动至末尾,找出最小的数字。

例如:

[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];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: