赞
踩
目录
本人刷剑指offer的一些程序记录,头文件,主函数都齐全,可直接上机运行
- #include <iostream>
- #include <vector>
- using namespace std;
- class solution
- {
- public:
- int MinRotateArray(vector<int> array)
- {
- if(array.size()==0) return 0;
- int left=0;
- int right=array.size()-1;
- int mid=0;
- while(array[left] >= array[right])
- {
- if(right-left==1)
- {
- mid=right;
- break;
- }
- mid=left+(right-left)/2;
- //特殊情况,原数组非递增也非递减
- if(array[left]==array[right] && array[left]==array[mid])
- return MinOrderArray(array,left,right);
- if(array[mid]>=array[left]) left=mid;
- else right=mid;
- }
- return array[mid];
- }
- private:
- int MinOrderArray(vector<int> array,int left,int right)
- {
- int min=left;
- for(int i=left+1;i<=right;i++)
- {
- if(array[min]>array[i]) min=i;
- }
- return array[min];
- }
- };

- int main()
- {
- int n,data;
- vector<int> array;
- cout<<"请输入数组的初始长度:"<<endl;
- cin>>n;
- cout<<"请初始化数组"<<endl;
- for(int i=0;i<n;i++)
- {
- cin>>data;
- array.push_back(data);
- }
- cout<<"最小值为:"<<endl;
- solution stu;
- cout<<stu.MinRotateArray(array)<<endl;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。