class Solution {
public:
// 斐波那契数列
//斐波那契数列就是该数等于前两数之和。
int Fibonacci(int n) {
int a=0,b=1;
while(n--)
{
int c=a+b;
a=b,b=c;
}
return a;
}
};
class Solution {
public:
int findMin(vector<int>& nums) {
int n=nums.size()-1;
//数组内所含元素非负,若数组大小为 0,请返回 −1。
if(n<0) return -1;
//因为标明是升序数组,所以旋转数组会分成两块,两块都是升序的,下面操作先把第二段和第一段开头的点给删了
while(n>0&&nums[n]==nums[0]) n--;
//判断特殊情况。就是执行完上述操作后,第二段没有了,此时若nums[n]>nums[0]则直接返回nums[0];
if(nums[n]>=nums[0]) return nums[0];
int l=0,r=n; //开始二分
while(l<r)
{
int mid=l+r>>1;
if(nums[mid]<nums[0]) r=mid;
else l=mid+1;
}
return nums[r]; //形成二分,最后二分出nums[r];就是小于nums[0]的第一个元素。就是最小值。
}
};