33. 搜索旋转排序数组

33. 搜索旋转排序数组

转化为两次二分。

java 复制代码
class Solution {
    public int search(int[] nums, int target) {
        int l = 0, r = nums.length - 1;

        // 找到分隔点,大于nums[0]的最后一个数(最大的数)
        while(l < r){
            int mid = l + r + 1 >> 1;
            if(nums[0] > nums[mid]) r = mid - 1;
            else l = mid;
        }

        if(nums[0] > target) r = nums.length - 1;
        else l = 0;

        // 在有序数组中找目标值
        while(l < r){
            int mid = l + r + 1 >> 1;
            if(nums[mid] > target) r = mid - 1;
            else l = mid;
        }

        return nums[l] == target ? l : -1;
    }
}
相关推荐
Wenhao.1 分钟前
LeetCode Hot100 每日温度
数据结构·算法·leetcode·golang
吃着火锅x唱着歌4 分钟前
LeetCode 1679.K和数对的最大数目
算法·leetcode·职场和发展
im_AMBER5 分钟前
Leetcode 57
笔记·学习·算法·leetcode
im_AMBER6 分钟前
Leetcode 58 | 附:滑动窗口题单
笔记·学习·算法·leetcode
sin_hielo7 分钟前
leetcode 2154
算法·leetcode
Sunhen_Qiletian14 分钟前
YOLO的再进步---YOLOv3算法详解(上)
算法·yolo·计算机视觉
ANYOLY1 小时前
Sentinel 限流算法详解
算法·sentinel
No0d1es2 小时前
电子学会青少年软件编程(C/C++)六级等级考试真题试卷(2025年9月)
c语言·c++·算法·青少年编程·图形化编程·六级
AndrewHZ2 小时前
【图像处理基石】图像去雾算法入门(2025年版)
图像处理·人工智能·python·算法·transformer·cv·图像去雾
Knox_Lai2 小时前
数据结构与算法学习(0)-常见数据结构和算法
c语言·数据结构·学习·算法