[LeetCode] 33. Search in Rotated Sorted Array

LeetCode题解(Java实现)——33.Search in Rotated Sorted Array(循环有序数组) 前言 欢迎关注我的 Github 仓库 https://github.com/bigrotor187/awesome-java-notes ,如果觉得有帮助,请点个 star 哟,目前主要在更 leetcode题解(Java版)和 剑指offer题解(Java版),可以点个star。 文本已收录至我的GitHub仓库,欢迎Star:awesome-java-notes 33. Search in... 阅读详情

Search in Rotated Sorted Array

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
Your algorithm’s runtime complexity must be in the order of O(log n).
Example 1:

Input: nums = [4,5,6,7,0,1,2], target = 0
Output: 4

Example 2:

Input: nums = [4,5,6,7,0,1,2], target = 3
Output: -1

解析

在旋转后的排序数组中找到给定值的位置,一般排序算法都是用二分法进行查找,可以达到logN的复杂度。
找到中间点mid,如果mid值大于最右边的值,可以知道mid左边的数组是排好序的,如果mid值小于或等于右边值,则mid右边数组是排好序的。然后就判断target在mid的左边还是右边,进行二分查找。

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int size=nums.size();
        int left = 0;
        int right = size-1;
        while(left <= right){
            int mid = (left+right)>>1;
            if(nums[mid] == target)
                return mid;
            else if(nums[mid] > nums[right]){  //在左边
                if(target >= nums[left] && target < nums[mid])
                    right = mid-1;
                else
                    left = mid+1;
            }
            else                               //在右边
            {
                if(target > nums[mid] && target <= nums[right])
                    left = mid + 1;
                else
                    right = mid -1;
            } 
        }
        return -1;
    }
};

参考

http://www.cnblogs.com/grandyang/p/4325648.html
https://leetcode.com/problems/search-in-rotated-sorted-array/discuss/14616/C%2B%2B-binary-search-with-comments-easy-to-read-and-understand

LLC混合滞回控制 vs 电压模/电流模:UCC25640x仿真对比与选型指南 在开关电源设计中,LLC谐振变换器的环路补偿是核心难点。传统电压模控制(VMC)和电流模控制(CMC)在LLC拓扑上存在环路增益漂移、动态响应慢等局限。混合滞回控制通过滞回比较器直接调制开关频率,并融合输出电压与谐振腔电流信息,实现了自适应环路增益和快速瞬态响应。该技术显著提升轻载效率与动态性能,适用于高密度适配器、快充及车载充电机等场景。本文基于UCC25640x系列,通过仿真对比三种控制策略,为工程选型与调试提供实践参考。 阅读详情

相关推荐

水文模型大合集---SWAT模型、VIC模型、HEC-HMS模型、HSPF模型、FVCOM模型、Delft3D模型、HYPE模型.......

1.1 面源污染概要1.2 SWAT模型及应用1.3 SWAT模型原理1.4 SWAT模型输入文件1.5 ArcGIS与SWAT关系。

jwwkyjspt的博客 4359

leetcode-33. Search in Rotated Sorted Array

leetcode-33. Search in Rotated Sorted Array题目: 这里基本思想就是二分法,而二分法其实并不需要严格排序,比如这一题,由于是Rotated,所以如果将数组二分的话至少会有一半是严格二分的,又因为不存在重复元素,我们只要判断严格递增区域的是否包含target就好了。如果严格递增区域没有则必定在另一半。 当然corner case还是有点麻烦的。。需要认真判断一下。这里

千念飞羽的专栏 402

Linux磁盘扩容实战:用parted命令无损扩展/data分区(附常见报错解决方案)

本文详细介绍了在Linux生产环境中使用parted命令对已挂载的/data分区进行在线磁盘扩容的完整实战流程。通过风险评估、状态检查、parted工具深度解析及实战演练,指导用户安全完成动态扩容,并提供了常见报错如'Partition is being used'、MBR 2TB限制等的解决方案,确保业务不中断、数据不丢失。

weixin_29207439的博客 296

LeetCode 33. Search in Rotated Sorted Array

题目描述(中等难度) 开始的时候想复杂了,其实就是一个排序好的数组,把前边的若干的个数,一起移动到末尾就行了。然后在 log (n) 下找到给定数字的下标。 总的来说,log(n),我们肯定得用二分的方法了。 解法一 参考这里-Binary-search-solution)首先我们想一下变化前,正常的升序。我们怎么找给定的数字。 我们每次只关心中间位置的值(这一点很重要),也就是上图 3 位置...

wind_liang的博客 1072

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

BIM的乐趣 1730

SAP PCC成本收集器实战:从配置到结算的完整流程解析

本文详细解析了SAP PCC成本收集器从配置到结算的完整流程,特别适用于重复制造行业。通过实战案例和配置要点,帮助用户掌握物料分类账管理、成本中心费用归集及差异分析等核心功能,提升企业生产成本控制效率。

weixin_29251567的博客 893

leetcode 33 Search in Rotated Sorted Array

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]). You are given a target value to search. If found ...

GoRunningSnail的博客 247

OpenClaw 开机自启配置:Windows/macOS/Linux 全平台技术指南

OpenClaw 开机自启全平台配置指南 本文提供了在Windows、macOS和Linux系统上配置OpenClaw开机自启的完整技术方案。主要内容包括: Windows配置:提供三种方法(Windows服务、任务计划程序、启动文件夹),详细说明服务脚本创建、服务注册和测试流程 macOS配置:使用LaunchAgent实现开机自启,包含配置文件创建和加载方法 Linux配置:通过systemd服务实现,包括服务单元文件创建和启用步骤 系统要求:明确硬件(64位CPU/4GB内存)和软件(各平台操作系统版

一键难忘的博客 2993

[Leetcode] 33. Search in Rotated Sorted Array 解题报告

题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). You are given a target value to search. If found in the ar

魔豆(Magicbean)的博客 1062

拆开它的“身体”,看懂割草机器人的五层系统架构

这篇文章深入解析了智能割草机器人的五层系统架构。机械层采用铝合金一体式车架和独立悬挂刀盘系统;电子层配备双处理器和多种传感器;固件层实现毫秒级安全响应;算法层融合多种定位技术实现厘米级精度;云服务层提供远程管理和AI优化。这套系统通过精密协同实现了智能割草的全流程闭环,展现了从机械结构到云端智能的完整技术栈,为户外智能设备设立了新的技术标杆。

智能硬件研发,欢迎交流 196

Pre-suite 开发之MFi功能搭建

Pre-suite 固件中只有带无线硬件的Ezairo 7160sl才具备无线通信能力,其无线功能包括标准BLE 5.2 低功耗蓝牙功能以及非标准的低功耗无线音频流功能。Ezairo 7160sl 支持3种低功耗无线音频流协议:来自APPLE的MFi,来自Google的ASHA以及来自onsemi的remote mic。其中MFi音频流走的G.722编码的Mode1,速率为64kbps;而非MFi音频流走的G.722的Mode3,速率为48kbps.

SnowYang2017的博客 1499

LeetCode 33 Search in Rotated Sorted Array 题解

LeetCode 33 Search in Rotated Sorted Array题意思路代码总结 题意 给出一个数组,该数组是由一个升序排列的数组以某个轴旋转后得到的。例如4 5 6 7 0 1 2是由0 1 2 4 5 6 7旋转(我认为是交换)后得到的。给你一个目标值target,要求判断数组中是否存在这个值,存在的话给出它的位置,否则返回-1。 注: 数组中无重复数组,要求算法时间复杂度...

EricJeffrey的博客 237

OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发

很多新手刚接触时,会把 Skill 想得很复杂,其实大可不必。OpenClaw 中的每个 Skill,本质就是一套“能力描述 + 执行逻辑”的组合包,简单说就是“告诉 AI 你能做什么、怎么做,它就会调用你”,核心特征可以总结为这几点,好记又实用:核心载体:以文件夹为单位,不管多简单的 Skill,文件夹里都必须有 SKILL.md 文件——这是 AI 识别技能的唯一依据,少了它,再完善的代码也没用;

haolove527的专栏 7024

LeetCode33——Search in Rotated Sorted Array

LeetCode33——Search in Rotated Sorted Array 简单来说就是在数组中查找  输入的  target,如果找到返回索引,如果没有找到返回-1 在中STL提供find方法,虽然事先知道是O(n)复杂度的顺序查找,还是首先就试了试,结果是可以通过的 注:返回的是迭代类型。 代码: class Solution { public: int

上善若水 513

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Leetcode 33 Search in Rotated Sorted Array

思路一: 看到时间复杂度logn,就知道要用binary search。那么第一种方法是two pass binary search。先用一次binary search把rotate point找出来,然后再判断target在rotate pointer前还是后。判断好了就再进行一次binary search。得到答案。附上代码: class Solution { int [] nums; int target; public int find_rotate_index(int left, .

GoodJobJasper的博客 189

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【LeetCode】 33. Search in Rotated Sorted Array 搜索旋转排序数组(Medium)(JAVA)

【LeetCode】 33. Search in Rotated Sorted Array 搜索旋转排序数组(Medium)(JAVA) 题目地址: https://leetcode.com/problems/search-in-rotated-sorted-array/ 题目描述: Suppose an array sorted in ascending order is rotated at...

qq_16927853的博客 197

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Leetcode33. Search in Rotated Sorted Array

那说明target就在这里面,否则只能在右半边。我们可以考虑只在有序的部分里寻找。旋转数组搜索,其中元素唯一。类似之前旋转数组找最小。,这说明左边是有序的。

思维缜密的博客 570

[leetcode] 33. Search in Rotated Sorted Array 解题报告

题目链接:https://leetcode.com/problems/search-in-rotated-sorted-array/ Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2)

小榕流光的专栏 2034

leetcode33_Search in Rotated Sorted Array

一.问题描述 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). You are given a target value to search. If found in the

越努力越幸运 332

【LEETCODE】33-Search in Rotated Sorted Array [Python]

Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). You are given a target value to search. If found in the array return its

aliceyangxi1987的博客 3263

leetcode No33. Search in Rotated Sorted Array

Question: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). You are given a target value to search. If found in th

Dufre 855

LeetCode 33. Search in Rotated Sorted Array(二分查找)

题目来源:https://leetcode.com/problems/search-in-rotated-sorted-array/ 问题描述 33.Search in Rotated Sorted Array Medium Suppose an array sorted in ascending order is rotated at some pivot unknown to you...

da_kao_la的博客 404

【LeetCode 33】 Search in Rotated Sorted Array

题目描述 Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]). You are given a target value to search. If found in the array return its index, otherwise return -1. Y

iCode_girl的博客 200

leetcode-33 Search in Rotated Sorted Array

问题描述: Supposea sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). You are given a target value to search. If found in the arrayretu

woliuyunyicai的专栏 945

Leetcode C++ 33. Search in Rotated Sorted Array

Leetcode 33. Search in Rotated Sorted Array 原文: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]). You...

sinat_35177634的博客 310

【Java】【LeetCode】33. Search in Rotated Sorted Array

题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e.,[0,1,2,4,5,6,7]might become[4,5,6,7,0,1,2]). You are given a target value to search. If f...

zhelong19830726的博客 228
上一篇: [LeetCode] 32. Longest Valid Parentheses
下一篇: [LeetCode] 34. Find First and Last Position of Element in Sorted Array Medium
Peng_maple
博客等级 码龄10年 0粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值