33. Search in Rotated Sorted Array

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了33. Search in Rotated Sorted Array相关的知识,希望对你有一定的参考价值。

???????????????   lin   ??????   The   solution   ref   ??????   ??????   line   

https://leetcode.com/problems/search-in-rotated-sorted-array/

????????????????????????????????????????????????????????????????????????????????????[0,1,2,3,4,5,6,7]???????????????[4,5,6,7,0,1,2,3]
?????????????????????????????????????????????????????????target????????????????????????????????????????????????????????????-1?????????????????????????????????????????????????????????????????? (O(logN))

?????????????????????????????????????????????????????????????????????target????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????target?????????????????????????????????????????????target??????????????????????????????????????????????????????
????????????????????????????????????????????????

  • ????????????????????????????????????
  • ????????????????????????????????????
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int lo = 0, hi = nums.size()-1;
        if(hi==-1)
            return -1;
        while(lo < hi) // find the minimum first
        {
            int mi = (lo+hi)>>1;
            if(nums[mi] < nums[hi])
                hi = mi;
            else
                lo = mi +1;
        }
        
        if (nums[nums.size()-1] < target) // ??????target????????????????????????????????????????????????????????????????????????????????????lo ??? hi??????
        {
            lo=0; hi = hi-1;
        }
        else // ?????? target ????????????????????????????????????????????????????????????????????? lo ??? hi???1???
        {
            lo = lo; hi = nums.size()-1;
        }
        
        while(lo < hi)
        {
            int mi = (lo + hi)>>1;
            if (nums[mi] < target)
                lo = mi+1;
            else
                hi = mi;
        }
        return (nums[lo]==target)?lo:-1;
        
    }
};

以上是关于33. Search in Rotated Sorted Array的主要内容,如果未能解决你的问题,请参考以下文章

33. Search in Rotated Sorted Array

33. Search in Rotated Sorted Array *HARD*

33. Search in Rotated Sorted Array

Leetcode[33]-Search in Rotated Sorted Array

LC.33. Search in Rotated Sorted Array

#Leetcode# 33. Search in Rotated Sorted Array