剑指06旋转数组的最小数字
2021-04-11 11:28
标签:div 大小 res public write min ret 元素 最小数 剑指06旋转数组的最小数字 标签:div 大小 res public write min ret 元素 最小数 原文地址:https://www.cnblogs.com/hrnn/p/13358899.html题目描述
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
public:
int minNumberInRotateArray(vector
int size=rotateArray.size();
if (size==0)
{
return 0;
}
int left=0,right=size-1;
int mid=0;
while (rotateArray[left]>=rotateArray[right]){
if (right-left==1){
mid=right;
break;
}
mid=left+(right-left)/2;
if (rotateArray[left]==rotateArray[right]&& rotateArray[left]==rotateArray[mid]){
return MinOrder(rotateArray,left,right);
}
if (rotateArray[mid]>=rotateArray[left]){
left=mid;
}
else {
right=mid;
}
}
return rotateArray[mid];
}
private :
int MinOrder(vector
int result=num[left];
for (int i=left+1;i
result=num[i];
}
}
return result;
}
};
public class Solution {
public int minNumberInRotateArray(int [] array) {
int low=0;int high=array.length-1;
while (low
if (array[mid]>array[high]){
low=mid+1;
}else if (array[mid]==array[high]){
high=high-1;
}else {
high=mid;
}
}
return array[low];
}
}
class Solution:
def minNumberInRotateArray(self, rotateArray):
# write code here
if not rotateArray:
return 0
else :
return min(rotateArray)