剑指OFFER 旋转数组的最小数字
Posted virgildevil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指OFFER 旋转数组的最小数字相关的知识,希望对你有一定的参考价值。
剑指OFFER 旋转数组的最小数字
暴力解法
直接一次扫描找出最小元素,时间效率比较低,需要改进
class Solution {
public:
int minNumberInRotateArray(vector<int> arr) {
int min = INT_MAX;
for(int i=0;i<arr.size();i++)
{
if(arr[i]<min)min = arr[i];
}
return min;
}
};
二分查找法
class Solution {
public:
int minNumberInRotateArray(vector<int> arr) {
int left = 0;
int right = arr.size()-1;
int mid = (left+right)/2;
while(left != mid)
{
if(arr[left]>arr[mid]){
right = mid;
}else if(arr[mid]>arr[right]){
left = mid;
}
mid = (left+right)/2;
}
return arr[right];
}
};
发现提交测试的时间还是一样的,可能是测评系统的问题吧,使用了二分查找多少都会快一些吧
以上是关于剑指OFFER 旋转数组的最小数字的主要内容,如果未能解决你的问题,请参考以下文章