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;
    }
}
相关推荐
大江东去浪淘尽千古风流人物9 分钟前
【DSP】向量化操作的误差来源分析及其经典解决方案
linux·运维·人工智能·算法·vr·dsp开发·mr
Unstoppable2230 分钟前
代码随想录算法训练营第 56 天 | 拓扑排序精讲、Dijkstra(朴素版)精讲
java·数据结构·算法·
饕餮怪程序猿1 小时前
A*算法(C++实现)
开发语言·c++·算法
电饭叔1 小时前
不含Luhn算法《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之二(识别卡号有效)
java·python·算法
2301_800256111 小时前
8.2 空间查询基本组件 核心知识点总结
数据库·人工智能·算法
不穿格子的程序员1 小时前
从零开始写算法——矩阵类题:矩阵置零 + 螺旋矩阵
线性代数·算法·矩阵
资深web全栈开发2 小时前
LeetCode 3432. 统计元素和差值为偶数的分区方案数
算法·leetcode
黎茗Dawn2 小时前
DDPM-KL 散度与 L2 损失
人工智能·算法·机器学习
wearegogog1232 小时前
DEA模型MATLAB实现(CCR、BCC、超效率)
开发语言·算法·matlab
业精于勤的牙2 小时前
浅谈:快递物流与算法的相关性(四)
算法