Leetcode--33. 搜索旋转排序数组

假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。

你可以假设数组中不存在重复的元素。

你的算法时间复杂度必须是 O(log n) 级别。

示例 1:

输入: nums = [4,5,6,7,0,1,2], target = 0
输出: 4
示例 2:

输入: nums = [4,5,6,7,0,1,2], target = 3
输出: -1

思路:二分查找

每一次先判断mid在左边有序范围内,还是右边有序范围内

1.如果在左边,看target是不是比左边最小的数字大,比左边最大的数字小

a.如果是,那说明数字就在左边有序范围内,或者不存在  b. 如果不是,就说明左边有序范围不存在,需要mid继续往右移动

2. 如果在右边,看target是不是比右边最小的数字大,比右边最大的数字小

a.如果是,那说明数字就在右边有序范围内,或者不存在  b. 如果不是,就说明右边有序范围不存在,需要mid继续往左移动

提交的代码:

class Solution {

    public int search(int[] nums, int target) {

        int high = nums.length-1;

            int low = 0;

            int mid;

            mid = low+(high-low)/2;

            while(low<=high)

            {

                

                if(nums[mid]==target)

                {

                    return mid;

                }

                if(nums[low]<=nums[mid])  //说明现在mid在左边

                {

                    if(target>=nums[low]&&target<=nums[mid])//说明这个数字在左边有序范围内

                    {

                        high = mid-1;

                    }

                    else   //只能从右边找

                    {

                        low = mid+1;

                    }

                }

                else{ //mid在右边

                    if(target >= nums[mid] && target <= nums[high]){//在右边有序范围内

                        low = mid +1;

                    }else{//只能从左边找

                        high = mid-1;

                    }

            }

                mid = low+(high-low)/2;

            }

            return -1;

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

北理计算机教案,北理工版三年级信息技术教案重点.docx

第1单元 初识神奇计算机第1课 神奇电子计算机【教学目的和要求】1、学生了解计算机组成各部分的名称和作用。2、学生知道什么是计算机软件&#xff0c;了解计算机软件的作用。3、学生了解计算机处理信息的过程。4、学会正确启动与关闭计算机。【教学重点】教学难点&#xff1a;…

Leetcode--162. 寻找峰值

峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums&#xff0c;其中 nums[i] ≠ nums[i1]&#xff0c;找到峰值元素并返回其索引。 数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回任何一个峰值所在位置即可。 你可以假设 nums[-1] nums[n] -…

计算机发展历程按什么划分,计算机的发展阶段是按什么划分的

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。计算机的发展阶段是按电子元件划分的&#xff0c;具体阶段如下:1、第1代为电子管数字机( 1946到1958年)。硬件方面,逻辑元件采用的是真空电子管&#xff0c;主存储器采用汞延迟线、阴…

因果推理、正则化上榜:权威专家盘点过去50年最重要的统计学思想

来源&#xff1a;机器学习研究组订阅在日常生活中&#xff0c;统计学无处不在&#xff0c;每个人、每件事似乎都可以使用统计数据加以说明。随着人类迈入大数据时代&#xff0c;统计学在方方面面更是发挥了不可或缺的作用。统计学思想&#xff0c;就是在统计实际工作、统计学理…

Nginx正向与反向代理

Nginx 主要用于反向代理与负载均衡 什么是代理服务器&#xff08;Proxy Serve&#xff09;&#xff1f; 提供代理服务的电脑系统或其它类型的网络终端,代替网络用户去取得网络信息。 为什么使用代理服务器&#xff1f; 提高访问速度 由于目标主机返回的数据会存放在代理服务…

计算机组成原理延迟时间ty,计算机组成原理第6章_5运算方法.ppt

文档介绍&#xff1a;6.5 算术逻辑单元一、ALU 电路四位 ALU 74181M 0 算术运算M 1 逻辑运算S3 ~ S0 不同取值,可做不同运算ALUAiBiFi…SiM位片式运算器4位双极型位片式运算器AM2901,它将ALU、通用寄存器组、多路开关、移位器等逻辑构件集成在一个芯片内。通用寄存器寄存器写…

Leetcode--172. 阶乘后的零

给定一个整数 n&#xff0c;返回 n! 结果尾数中零的数量。 示例 1: 输入: 3 输出: 0 解释: 3! 6, 尾数中没有零。 示例 2: 输入: 5 输出: 1 解释: 5! 120, 尾数中有 1 个零. 说明: 你算法的时间复杂度应为 O(log n) 。 思路&#xff1a; 能出现零的因子里面一定出现2&am…

生命起源的奥秘:分子生物学对生命起源研究

来源&#xff1a; 科学技术哲学1993年加州大学柏克利分校的詹腓力教授邀请了一批科学家、哲学家到加州中部的一个海滨小镇相聚。这些学者来自著名的学术中心&#xff0c;包括剑桥、慕尼黑、芝加哥大学等学府&#xff0c;他们是来质疑一个统治了科学界长达150年的学说。保罗.尼尔…

Python学习第二天

运算符类型&#xff1a; 1.算术运算符 a 10*10 2.赋值运算 a a 1 3.比较运算 a 1 > 5 4.逻辑运算 a 1>6 or 11 5.成员运算 a "文" in "郑建文" 基本数据类型 数字  int 字符串  str 列表  list 元祖  tuple 字典  dict 布尔值  b…

Promise,async和js的事件循环机制

Promise Promise有等待&#xff0c;已成功&#xff0c;失败&#xff0c;三种状态&#xff0c;状态的改变会触发then回调函数和catch回调函数。 当执行一个Promise时&#xff0c;它会立刻返回一个Promise对象&#xff0c;并且不会阻塞后续代码执行。 当Promise的状态发生改变后…

介绍计算机硬件的情景剧表演,手忙脚乱的情景剧

继去年一手操办了女儿班上的元旦迎新会后&#xff0c;昨天&#xff0c;我再一次自编自演自导。不得不说&#xff0c;学校真是磨练人的地方。一、创作剧本的起因半个月前&#xff0c;宋老师推荐我和女儿参加学校举行的亲子诵读比赛。去年也参与过一次&#xff0c;我己经形成了固…

java 双因素认证(2FA)TOTP demo

TOTP 的全称是"基于时间的一次性密码"&#xff08;Time-based One-time Password&#xff09;。它是公认的可靠解决方案&#xff0c;已经写入国际标准 RFC6238。 很早就知道有这个东西了,一直不知道是怎么实现的. 比如 QQ 安全中心的密钥,U盾&#xff0c;就是动态密码…

win7计算机管理中看不到新加的硬盘,win7系统看不到第二块硬盘的解决方法.

win7系统想必大家都非常熟悉吧&#xff0c;然而有时候可能会碰到win7系统看不到第二块硬盘的情况&#xff0c;想必大家都遇到过win7系统看不到第二块硬盘的情况吧&#xff0c;那么应该怎么处理win7系统看不到第二块硬盘呢&#xff1f;我们依照1、进入win7系统控制面板&#xff…

美国航空发动机发展经验,给中国的启示!

内容来源&#xff1a;网络本期编辑&#xff1a;小艾 航空发动机是装备制造领域的最高端产品&#xff0c;代表了装备制造业的最高技术水平&#xff0c;被誉为现代工业“皇冠上的明珠”&#xff0c;其重要性一向为人所强调&#xff0c;但成为航空发动机强国的道路之艰难却往往为人…

session的钝化和活化

钝化&#xff1a;内存->硬盘 活化&#xff1a;硬盘->内存 session对象的四种状态&#xff1a; 1.session.setAttribute("a",xxx),将对象a绑定到session中 2.session.removeAttribute("a")&#xff0c;将对象a从session中解绑 监听session对象的…

华师 计算机系统 作业,华师网络学院作业答案-计算机组成原理问答题

华师网络学院作业答案-计算机组成原理问答题 (4页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.9 积分试谈谈什么是存储系统的高速缓冲存储器(Cache)&#xff0c; 画出“主存- Cache”这一存储层次…

第五十四篇 Linux相关——远程连接SSH

No.1. SSH&#xff08;Secure Shell&#xff09;安全外壳协议建立在应用层基础上的安全协议可靠&#xff0c;专为远程登录会话和其他网络服务提供安全性的协议有效防止远程管理过程中的信息泄漏问题SSH客户端适用于多种平台SSH服务器端几乎支持所有Unix平台No.2. 服务器安装SSH…

《2020城市大脑全球标准研究报告》全文正式开放申领

2020年12月23日&#xff0c;《2020城市大脑全球标准研究报告》在北京正式发布&#xff0c;提出了城市大脑建设标准的研究方向和初步成果&#xff0c;内容包括&#xff1a; 城市大脑的顶层建设规范、整体技术架构、云反射弧机制、运行安全、城市神经元的种类划分、识别编码、空…

Leetcode--91. 解码方法

一条包含字母 A-Z 的消息通过以下方式进行了编码&#xff1a; A -> 1 B -> 2 ... Z -> 26 给定一个只包含数字的非空字符串&#xff0c;请计算解码方法的总数。 示例 1: 输入: "12" 输出: 2 解释: 它可以解码为 "AB"&#xff08;1 2&#xff0…

测试动态视力软件叫什么影响吗,动态视力

动态视力是指眼睛在观察移动目标时&#xff0c;捕获影像、分解、感知移动目标影像的能力&#xff0c;是一种知觉运动物体细节的能力。这种能力伴随着通过动态视力捕捉影像和短时间内大脑信息处理的过程以及机体的相应的反应过程。中文名动态视力外文名Dynamicvisual acuity应用…