leetcode面试题 10.03. 搜索旋转数组(二分法)
搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。
示例1:
输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5
输出: 8(元素5在该数组中的索引)
代码
class Solution {public int search(int[] arr, int target) {int l=0,n=arr.length,r=n-1;while (l<=r){int mid=(r-l)/2+l;if (arr[l]<arr[mid])//左边升序{if(arr[l]<=target&&target<=arr[mid])r=mid;else l=mid+1;}else if(arr[l]>arr[mid])//左边不是升序{if(arr[l]<=target||target<=arr[mid])r=mid;else l=mid+1;}else if(arr[l]==arr[mid]){if (arr[l]!=target)l++;else return l;}}return -1;}
}
leetcode面试题 10.03. 搜索旋转数组(二分法)相关推荐
- 60. Leetcode 面试题 10.03. 搜索旋转数组 (二分查找-局部有序)
搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个.示例1 ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)
1. 题目 搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详. 请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小 ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组
题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...
- Leetcode面试题 10.01. 合并排序的数组(C语言)
Leetcode面试题 10.01. 合并排序的数组(C语言) 题目: 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序.初始化 ...
- 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
[LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- LeetCode(81): 搜索旋转排序数组 II
Medium! 题目描述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给 ...
- LeetCode 面试题 10.02. 变位词组
面试题 10.02. 变位词组 Ideas 互为变位词的两个字符串包含的字符相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,可以将排序之后的字符串作为哈希表的键. 在Python里面有 ...
- [剑指offer][JAVA]面试题第[11]题[旋转数组的最小数字][二分法][分治]
[问题描述][简单] 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3, ...
最新文章
- python的用途-Python运算符的作用与意义
- Spring使用支付宝扫码支付
- 被替换的项目不是替换值长度的倍数_如果要在Excel中计算单元格内指定的字符长度,我推荐这两个公式.........
- java控制台输出百分比进度条示例
- windows安装python2.7_Windows下安装python2.7及科学计算套装
- AcWing 866. 试除法判定质数(素数判定)
- 459B Pashmak and Flowers
- win10系统使用自带的win7图片查看器
- Linux查看内存状态ariveble,分析996个词根在各大考纲词汇中的作用(三)
- 使用Python合并Excel文件
- 实现Pomodoro计时器的Vue组件
- [玩转北京] 北京最值得你一看的博物馆大全
- 区块链钱包—BTC Java版离线签名交易
- Javascript显示隐藏DIV
- DateCalander
- Linux系统安全及应用-grub菜单启用密码限制10
- [BUGKU] [MISC] 很普通的数独
- java rpm卸载_rpm安装和卸载软件
- 精品英文字体:20款免费的的圣诞节艺术字体
- 面试官:Vue3.0 性能提升主要是通过哪几方面体现的?