剑指offer8 旋转数组的最小数字
Posted 去做点事情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer8 旋转数组的最小数字相关的知识,希望对你有一定的参考价值。
一种错误写法:
class Solution { public: int minNumberInRotateArray(vector<int> rotateArray) { int length = rotateArray.size(); if(length <= 0) return 0; if(rotateArray[0] == rotateArray[length-1] && rotateArray[0] == rotateArray[(length-1)/2]){ int number = 0x7FFFFFFF; for(int i = 0;i < length;i++){ if(rotateArray[i] < number) number = rotateArray[i]; } return number; } else if(rotateArray[0] < rotateArray[length-1]){ return rotateArray[0]; } else{ int begin = 0; int end = length-1; while(begin < end){ int mid = (begin + end)/2; if(rotateArray[mid] >= rotateArray[begin]) begin = mid; else if(rotateArray[mid] <= rotateArray[begin]) end = mid; } return rotateArray[begin]; } } };
如果只有两个数,begin < end就会陷入死循环
以上是关于剑指offer8 旋转数组的最小数字的主要内容,如果未能解决你的问题,请参考以下文章