leetcode中等33搜索旋转排序数组

Posted qq_40707462

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode中等33搜索旋转排序数组相关的知识,希望对你有一定的参考价值。


思路:二分
如果 mid<right ,则右半边有序,判断target是否在右半边,否则在左半边寻找;另一部分同理
时间复杂度为 O(log n)

class Solution 
    public int search(int[] nums, int target) 
        int len=nums.length;
        int left=0,right=len-1;
        while(left<=right)
            int mid=(left+right)/2;
            if(nums[mid]==target) return mid;
            else if(nums[mid]<nums[right])//右半边有序
                if(nums[mid]<target && target<=nums[right]) left=mid+1;//t在右半边
                else right=mid-1;
            
            else//左半边有序
                if(nums[left]<=target && target<nums[mid]) right=mid-1;
                else left=mid+1;
            
        
        return -1;
    

以上是关于leetcode中等33搜索旋转排序数组的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 33.搜索旋转排序数组

Leetcode 33.搜索旋转排序数组

leetcode33 搜索旋转排序数组(Medium)

Hot10033. 搜索旋转排序数组

33. 搜索旋转排序数组

33. 搜索旋转排序数组