leetcode刷题_搜索旋转排序数组

题目描述

在这里插入图片描述

Java解决方法

class Solution {
    
    
    public int search(int[] nums, int target) {
    
    
        int start = 0;
        int end = nums.length - 1;
        int ret = bisearch(nums,start,end,target);
        return ret;
    }

    private int bisearch(int[] nums, int low, int high, int target) {
    
    
        if (low > high)
            return -1;
        int mid = (low + high) / 2;
        if (nums[mid] == target)
            return mid;
        if (nums[mid] < nums[high]) {
    
    
            if (nums[mid] < target && target <= nums[high])
                return bisearch(nums, mid + 1, high, target);
            else
                return bisearch(nums, low, mid - 1, target);
        } else {
    
    
            if (nums[low] <= target && target < nums[mid])
                return bisearch(nums, low, mid - 1, target);
            else
                return bisearch(nums, mid + 1, high, target);
        }
    }
}

おすすめ

転載: blog.csdn.net/qq_42148307/article/details/120221591