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

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;
    }
}
上一篇:2022-2023年英语周报七年级第33期答案汇总


下一篇:linux终端输出带颜色的字