题目描述

假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。

点击在线评测代码

样例

例1:

输入: [4, 5, 1, 2, 3] and target=1,
输出: 2.

例2:

输入: [4, 5, 1, 2, 3] and target=0,
输出: -1.

题解

应用二分法分类讨论。
注意一下分类的细节即可。

相比自己刷题,有大神带着刷效果肯定更好,专业的算法课程(点击免费试听)可以随问随答,在最短时间内提高算法水平,应对大厂面试。

public class Solution {public int search(int[] A, int target) {if (A == null || A.length == 0) {return -1;}int start = 0;int end = A.length - 1;int mid;while (start + 1 < end) {mid = start + (end - start) / 2;if (A[mid] == target) {return mid;}if (A[start] < A[mid]) {// situation 1, red lineif (A[start] <= target && target <= A[mid]) {end = mid;} else {start = mid;}} else {// situation 2, green lineif (A[mid] <= target && target <= A[end]) {start = mid;} else {end = mid;}}} // whileif (A[start] == target) {return start;}if (A[end] == target) {return end;}return -1;}
}

【LintCode 题解】小米面试算法题:搜索旋转排序数组相关推荐

  1. leetcode算法题--搜索旋转排序数组

    原题链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ 此题的特点是,以mid为中点,肯定有一半是有序的 首先判断t ...

  2. 《LeetCode力扣练习》第33题 搜索旋转排序数组 Java

    <LeetCode力扣练习>第33题 搜索旋转排序数组 Java 一.资源 题目: 整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下 ...

  3. [Leedcode][JAVA][第33题][搜索旋转排序数组]

    [问题描述][33. 搜索旋转排序数组] [中等] 假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). ...

  4. ​LeetCode刷题实战81:搜索旋转排序数组 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  5. LeetCode高频题33. 搜索旋转排序数组

    LeetCode高频题33. 搜索旋转排序数组 提示:本题是系列LeetCode的150道高频题,你未来遇到的互联网大厂的笔试和面试考题,基本都是从这上面改编而来的题目 互联网大厂们在公司养了一大批A ...

  6. LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  7. LeetCode 33. 搜索旋转排序数组 golang

    33. 搜索旋转排序数组 三个测试用例, 这个题的难度是二分法的左侧条件很难写出来. 4 5 6 0 1 2 3 1 2 3 4 5 6 0 5 1 2 3 4 ( 例如,数组 [0,1,2,4,5, ...

  8. python旋转排序数组_LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现...

    题目描述: python实现Search in Rotated Sorted Array 搜索旋转排序数组 中文:假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2, ...

  9. LeetCode--81. 搜索旋转排序数组Ⅱ(遍历法,二分法)

    搜索旋转排序数组Ⅱ(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 遍历法 3.2 二分法 4. Python语言实现 1. 题目描述 难度:中等 2. 题目分析 这道 ...

  10. python 搜索旋转排序数组

    | 搜索旋转排序数组 整数数组 nums 按升序排列,数组中的值 互不相同 .在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ...

最新文章

  1. java 排序算法 讲解_java实现排序算法之冒泡排序法详细讲解
  2. NDK,动态链接库,JNI
  3. w ndows8怎么连接网络,(Wndows8.1优化设置全面解析.doc
  4. 探索startActivity流程及在Activity间是如何传递Intent的
  5. SQL Server ldf 丢失的数据库恢复
  6. 更改python默认路径_Linux下多版本python共存时,默认执行路径修改方法
  7. struts2,实现Ajax异步通信
  8. arm shellcode 编写详析2
  9. css div撑满窗口高度_如何使用CSS将div的高度设置为窗口的100%?
  10. [超简单]C++如何使用MySQL数据库
  11. kaldi语音识别实战pdf_FSMN网络结构在语音识别声学模型的实践
  12. 压测学习总结(7)——Jmeter性能测试之脚本增强
  13. switch 语句编译报错Constant expression required
  14. 利用BAT脚本加入域和退出域的代码
  15. Kata: 从随机的三字符列表组中恢复秘密字符串
  16. Eclipse下载与安装
  17. 政务中心综合信息系统建设方案
  18. MacOS开发-给自己的 app 添加 URL Scheme(Xcode 9之后)
  19. 设置bing为chrome的默认搜索引擎
  20. 在python中for a in a是什么意思_Python:A [1:]中x的含義是什么?

热门文章

  1. vue +springboot项目部署(nginx)
  2. ThreeJS-太阳球围绕旋转(二十四)
  3. 数据库三范式设计习题
  4. Chrome浏览器怎么调试网页标题字体大小和颜色?
  5. base64格式图片数据转为图片格式
  6. SYS Informer 完整显示系统、电脑软硬件详细信息
  7. 【原创】【个人向】CSP-S 2019 爆炸退役记 (已完成)
  8. Log4J的入门简介学习【转】
  9. 2021-03-27 深度信念网络(DBN)学习笔记
  10. app接口设计之signature签名的php实现