LeetCode—33. 搜索旋转排序数组

33. 搜索旋转排序数组

题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 。

在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。

给你旋转后的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。

考察重点:二分查找

方法概括:先遍历找到旋转位置,前数组为原数组后半部分,后数组为原数组前半部分,根据target大小选择在哪个数组进行二分查找。

public int search(int[] nums, int target) {int left = 0, right = nums.length - 1;for (; left + 1 <= right && nums[left] < nums[left + 1]; left++) {}	//遍历找到旋转的起始位置//对于[4,5,6,7,0,1,2]   left目前指向7,right目前指向2if (left == right) {			// left right更新为记录待查找数组的左右边界left = 0;} else if (nums[right] >= target) {left++;} else {		right = left;left = 0;}while (left <= right) {int mid = left + (right - right) / 2;if (nums[mid] == target) {return mid;}if (target < nums[mid]) {right = mid - 1;}if (target > nums[mid]) {left = mid + 1;}}return -1;
}

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

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

相关文章

巧用脚本为木马“整容”

目的&#xff1a; 掌握基础的VBS脚本&#xff0c;“改变”木马后缀名不引起警觉&#xff0c;他点击木马后会先运行一段我们装备好的素材&#xff0c;音乐或图片&#xff0c;然后才执行木马 诱骗对方运行木马 前工作&#xff1a;根据需要准备一款木马&#xff0c;一个ICO图标文件…

重读STL

从第一次使用STL到现在也有四年了&#xff0c;说来惭愧&#xff0c;以前一直只是现用现查&#xff0c;还从来没有仔细地读一读STL的文档。前两天偶尔看到一个别人推荐的链接&#xff08;http://www.sgi.com/tech/stl/&#xff09;&#xff0c;才想起应该看看&#xff0c;一读之…

OSChina 周四乱弹 —— 熊孩子毁灭世界

2019独角兽企业重金招聘Python工程师标准>>> 小伙伴们赶快起床&#xff0c;开源中国要出大事啦~ 为方便大家搜索开源软件&#xff0c;开源中国决定整理 IT 公司开源软件。初步列表不一定完善&#xff0c;小伙伴们有什么意见可以向小小编或者红薯提出来~ 好啦好啦&am…

华为EC169 3G卡在Win7下的安装

最近换了机器&#xff0c;安装的是Win7。结果发现安装华为EC169 3G卡时&#xff0c;无法安装。&#xff08;注&#xff1a;我已更新为最新支持Win7的驱动。&#xff09; 折腾了近半天的时间&#xff0c;才发现是内码的问题。 由于工作需要&#xff0c;我将非Unicode的内码改为了…

小容量单片机生成pdf文件

工作上要求使用小容量单片机生成直接生成pdf文件。经过一段时间的摸索&#xff0c;其中参考了libharu&#xff0c;库太大&#xff0c;不适合在单片机上使用页参考了与非网上一位前辈的库&#xff0c;占用的RAM太大&#xff0c;不适合小容量单片机&#xff0c;主要资料是pdf1.7格…

LeetCode—209. 长度最小的子数组

209. 长度最小的子数组 题目描述&#xff1a;给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0…

Redis主备安装

2019独角兽企业重金招聘Python工程师标准>>> 采用主备部署方式&#xff0c;Master不做数据持久化操作&#xff0c;仅Slave做数据持久化操作&#xff0c;Slave采用AOF二进制日志文件作为持久化方案&#xff0c;默认每秒持久化一次。 安装 1. 下载源代码文件redis-2…

一位台湾校长的讲话。学习!!!

台湾有这么一所学校&#xff0c;学生年龄在15&#xff0d;18之间&#xff0c;每年三千多学生中&#xff0c;因违反校规校纪被校方开除的二、三百人。学校没有工人&#xff0c;没有保卫&#xff0c;没有大师傅&#xff0c;一切必要工种都由学生自己去做。学校实行学长制&#xf…

数据库设计三大范式【转载】

数据库设计范式 什么是范式&#xff1a;简言之就是&#xff0c;数据库设计对数据的存储性能&#xff0c;还有开发人员对数据的操作都有莫大的关系。所以建立科学的&#xff0c;规范的的数据库是需要满足一些 规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为…

MVC2验证(自定义异常)

源码 /Files/zhangchao1/MVCValidationTest.rar 在contorllers内虽然简单&#xff0c;但有却有些不符合mvc 的设计理念&#xff0c;这里&#xff0c;我们将验证放到DLL部分 首先建立自定义的异常类 public class MyExcptions:Exception { //存放错误信息 List<string[]> …

LeetCode—210. 课程表 II

210. 课程表 II 题目描述&#xff1a;现在你总共有 numCourses 门课需要选&#xff0c;记为 0 到 numCourses - 1。给你一个数组 prerequisites &#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示在选修课程 ai 前 必须 先选修 bi 。 例如&#xff0c;想要学习课…

Visual C++2010的使用

Tools->Settings>Rest... 还原所有设置 运行程序&#xff1a;"D:\Program Files\VCExpress\Install\Microsoft Visual Studio 10.0\Common7\IDE\VCExpress.exe" 一、Visual C2010&#xff08;微软vc2010&#xff09;如何编写并运行C程序&#xff1f; 1、刚开始…

LeetCode—211. 添加与搜索单词 - 数据结构设计

211. 添加与搜索单词 - 数据结构设计 题目描述&#xff1a;请你设计一个数据结构&#xff0c;支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary &#xff1a; WordDictionary() 初始化词典对象 void addWord(word) 将 word 添加到…

58或与赶集合并,几人欢喜几人愁

前奏&#xff1a;相信在北京的园友们今天早上一觉醒来&#xff0c;让大家感慨的不光是昨天的沙尘暴&#xff08;2月雾霾3月风沙4月来了个套餐&#xff09;&#xff0c;还有就是58或与赶集合并的消息。 不过这种冤家相聚的例子今年已经有好几起了&#xff0c;like: 优酷土豆/快的…

Java中abstract和interface的区别

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制&#xff0c;正是由于这两种机制的存在&#xff0c;才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性&#xff0c;甚至可以相互替换&#x…

解决报表部署时数据源存在不能替换的问题

打开报表项目属性页配置属性&#xff0d;常规设置OverWriteDataSourcestrue即可&#xff01;转载于:https://www.cnblogs.com/wyq2004/archive/2004/07/29/28300.html

android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升转载于:https://www.cnblogs.com/jeanschen/p/3507512.html

LeetCode—213. 打家劫舍 II

213. 打家劫舍 II 题目描述&#xff1a;你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统…

【转载】Linux下有趣的命令

转载&#xff1a;http://www.cnblogs.com/kernel_hcy/archive/2011/05/01/2033928.html yes&#xff1a;输出一串y&#xff0c;有时可以用来对付很多y/n选择的应用 。输出很多。。。banner&#xff1a;打印字符标题&#xff0c;就是用字符拼出大字来 ,最好把窗口最大化&#xf…

企业网站常用中英文对照表

网站导航 site map 公司简介 PROFILE or COMPANY Profile or Company 公司设备 EQUIPMENT Equipment 公司荣誉 GLORIES Glories 企业文化 CULTURE Culture 产品展示 PRODUCT Product 资质认证 quality certification 企业规模 SCALE Scale 营销网络 Sales Network 组织…