搜索旋转数组。给定一个排序后的数组,包含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. 搜索旋转数组(二分法)相关推荐

  1. 60. Leetcode 面试题 10.03. 搜索旋转数组 (二分查找-局部有序)

    搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个.示例1 ...

  2. 程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)

    1. 题目 搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详. 请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小 ...

  3. 程序员面试金典 - 面试题 10.03. 搜索旋转数组

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...

  4. Leetcode面试题 10.01. 合并排序的数组(C语言)

    Leetcode面试题 10.01. 合并排序的数组(C语言) 题目: 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序.初始化 ...

  5. 【LeetCode】剑指 Offer 11. 旋转数组的最小数字

    [LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...

  6. LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置

    前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...

  7. LeetCode(81): 搜索旋转排序数组 II

    Medium! 题目描述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给 ...

  8. LeetCode 面试题 10.02. 变位词组

    面试题 10.02. 变位词组 Ideas 互为变位词的两个字符串包含的字符相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,可以将排序之后的字符串作为哈希表的键. 在Python里面有 ...

  9. [剑指offer][JAVA]面试题第[11]题[旋转数组的最小数字][二分法][分治]

    [问题描述][简单] 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3, ...

最新文章

  1. python的用途-Python运算符的作用与意义
  2. Spring使用支付宝扫码支付
  3. 被替换的项目不是替换值长度的倍数_如果要在Excel中计算单元格内指定的字符长度,我推荐这两个公式.........
  4. java控制台输出百分比进度条示例
  5. windows安装python2.7_Windows下安装python2.7及科学计算套装
  6. AcWing 866. 试除法判定质数(素数判定)
  7. 459B Pashmak and Flowers
  8. win10系统使用自带的win7图片查看器
  9. Linux查看内存状态ariveble,分析996个词根在各大考纲词汇中的作用(三)
  10. 使用Python合并Excel文件
  11. 实现Pomodoro计时器的Vue组件
  12. [玩转北京] 北京最值得你一看的博物馆大全
  13. 区块链钱包—BTC Java版离线签名交易
  14. Javascript显示隐藏DIV
  15. DateCalander
  16. Linux系统安全及应用-grub菜单启用密码限制10
  17. [BUGKU] [MISC] 很普通的数独
  18. java rpm卸载_rpm安装和卸载软件
  19. 精品英文字体:20款免费的的圣诞节艺术字体
  20. 面试官:Vue3.0 性能提升主要是通过哪几方面体现的?

热门文章

  1. 965. 单值二叉树
  2. Java面试2021,java数据可视化项目
  3. 自学Android!Android高级工程师面试题-字节跳动,附答案
  4. [设计模式]State模式
  5. LintCode Find the Weak Connected Component in the Directed Graph
  6. 5-python学习——条件语句
  7. Sphinx编译docs文档
  8. 基础总结篇之中的一个:Activity生命周期
  9. Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口
  10. Java lamda表达式快速分组