码迷,mamicode.com
首页 > 编程语言 > 详细

8 旋转数组的最小数字

时间:2017-11-27 21:34:32      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:输出   mini   pre   for   数组   最小   开始   bsp   元素   

输入一个递增排序数组的一个旋转,输出旋转数组的最小元素
例如1,2,3,4,5的一个旋转可以为3,4,5,1,2
把一个数组的最开始若干个元素搬到数组的末尾,称之为数组的旋转

输出旋转数组的最小元素

 

C++:

 1 class Solution {
 2 public:
 3     int minInOrder(vector<int> rotateArray , int left , int right) {
 4         int res = rotateArray[left] ;
 5         for (int i = left ; i <= right ; i++){
 6             if (rotateArray[i] < res)
 7                 res = rotateArray[i] ;
 8         }
 9         return res ;
10     }
11     
12     int minNumberInRotateArray(vector<int> rotateArray) {
13         int len = rotateArray.size() ;
14         if (len <= 0)
15             return 0 ;
16         int left = 0 ;
17         int right = len - 1 ;
18         int mid = left ;
19         while(rotateArray[left] >= rotateArray[right]){
20             if (right-left == 1){
21                 mid = right ;
22                 break ;
23             }
24             mid = (left+right)>>1 ;
25             if (rotateArray[left] == rotateArray[mid] && rotateArray[mid] == rotateArray[right]){
26                 return minInOrder(rotateArray,left,right) ;
27             }
28             if (rotateArray[mid] >= rotateArray[left]){
29                 left = mid ;
30             }else if (rotateArray[mid] <= rotateArray[right]){
31                 right = mid ;
32             }
33         }
34         return rotateArray[mid] ;
35     }
36 };

 

8 旋转数组的最小数字

标签:输出   mini   pre   for   数组   最小   开始   bsp   元素   

原文地址:http://www.cnblogs.com/mengchunchen/p/7905808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!