#include <bits/stdc++.h> using namespace std; #define N 10110 #define ll long long #define inf 0x3f3f3f3f /* 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 */ int a[N],n; int search(int *a){ if(n==0) return 0; int p = 0,l=n-1,mid; while(p<l){ mid = (p+l)/2; if(a[mid]>a[l]){ p=mid+1; } else if(a[mid]<a[l]){ l=mid;//a[mid]可能就是最小值 } else{ l = l-1; } printf("sgved %d\n",a[mid]); } return a[p]; } int main() { scanf("%d",&n); for(int i =0;i<n;i++) scanf("%d",&a[i]); int x = search(a); printf("%d\n",x); return 0; }