#include<cstdio>
#include<iostream>
using namespace std;
class Solution{
public:
int shunxu(int A[],int len){
int min=A[0];
for(int i=1;i<len;i++)
{
if(A[i]<min)
min = A[i];
}
return min;
}
int rot(int A[],int len){
if(A == NULL||len<=0)
return 0;
int p1=0,p2=len-1,mid=p1,small=p1;
while(A[p1]>=A[p2]){
if(p2-p1<=1){
small = p2;
break;
}
mid = (p1+p2)/2;
if(A[p1]==A[mid]&&A[p2]==A[mid])
return shunxu(A,p2-p1+1);
if(A[p1]<=A[mid])
p1 = mid;
if(A[p2]>=A[mid])
p2 = mid;
}
return A[small];
}
};
int main()
{
int n,*A;
cin >> n;
A = new int[n];
for(int i=0;i<n;i++)
cin >> A[i];
Solution tg;
cout << tg.rot(A,n);
system("pause");
}
测试:功能测试、边界测试、性能测试
1,2,3,4,5
1,1,0,1,1,1,1
3,4,5,1,2,3
先做功能程序设计,在考虑边界问题,考虑越周到就越容易打动面试官