C++ 求旋转字符串中的最小值

来源:互联网 发布:乐易网络是真的假的 编辑:程序博客网 时间:2024/06/03 20:54

思路比较简单,直接看代码即可:

/*求一个旋转字符串中最小值*//*思路:遇到没有旋转以及数组中相同位置元素相等的采用顺序查找*/#include <iostream>#include <exception>#include <stdio.h>using namespace std;class Solution{public:int find(int array[],int length){int i=0, min = array[0];while(i<length){if(min > array[i])min = array[i];i++;}return min;}int findmin(int array[],int length){if(!array || length <1)throw new exception();int lp = 0, rp =length -1;int mid_index = lp;while(array[lp] >= array[rp]){if(rp - lp == 1)return array[rp];else{mid_index =(lp + rp)/2;if(array[lp] < array[rp] ||( (array[lp] == array[rp] )&& (array[lp] = array[mid_index])))return find(array,rp - lp +1);if(array[lp] > array[mid_index])rp = mid_index;elselp = mid_index;}}return array[mid_index];}};int main(){Solution sol;int array1[]= {1,2,3,4,5};cout << "min :"<<sol.findmin(array1,5)<<endl;int array2[] = {3,4,5,1,2};cout << "min :"<<sol.findmin(array2,5)<<endl;int array3[] = {5,1,2,3,4};cout << "min: "<<sol.findmin(array3,5)<<endl;system("PAUSE");return 0;}

运行结果:


0 0
原创粉丝点击