LeetCode 33 搜索旋转排序数组

Posted Starzkg

tags:

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

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

解决方案

class Solution 
    public int search(int[] nums, int target) 
        int n = nums.length;
        if (n == 0) 
            return -1;
        
        if (n == 1) 
            return nums[0] == target ? 0 : -1;
        
        int l = 0, r = n - 1;
        while (l <= r) 
            int mid = (l + r) / 2;
            if (nums[mid] == target) 
                return mid;
            
            if (nums[0] <= nums[mid]) 
                if (nums[0] <= target && target < nums[mid]) 
                    r = mid - 1;
                 else 
                    l = mid + 1;
                
             else 
                if (nums[mid] < target && target <= nums[n - 1]) 
                    l = mid + 1;
                 else 
                    r = mid - 1;
                
            
        
        return -1;
    

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

Leetcode 33.搜索旋转排序数组

[leetcode] 33. 搜索旋转排序数组(Java)

leetcode[33. 搜索旋转排序数组]

LeetCode 33 搜索旋转排序数组

5-002-(LeetCode- 33) 搜索旋转排序数组

[LeetCode] 33. 搜索旋转排序数组