个人博客:https://luxialan.com

Find Minimum in Rotated Sorted Array 分类: Leetcode 2015-01-03 10:23 83人阅读 评论(0) 收藏

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

You may assume no duplicate exists in the array.


排好序的数列是很容易搞定的,直接找最小值

class Solution {
public:
    int findMin(vector<int> &num) {
      int min=num[0];
      int i;
      for(i=0;i<num.size();i++)
      {
          if(num[i]<min)
          {
              min=num[i];
              break;
          }
      }
      return min;
        
    }
};

二分查找,经典的查找算法

class Solution {
public:
    int findMin(vector<int> &num) {
      int l,r,min,mid,size;
      size  = num.size()-1;
      min = num[0];
      l=0;
      r=size;
      while(l<r)
      {
          if(num[l]<num[r])
          {
              break;
          }
          else
          {
              mid=(l+r)/2;
              if(num[mid]<num[l])
              {
                  r=mid;
              }
              else
              {
                  l=mid+1;
              }
          }
          

      }
      return num[l];
          
      
        
    }
};




版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-01-03 10:23  luxialan  阅读(111)  评论(0编辑  收藏  举报