题目链接 :https://leetcode.com/problems/search-in-rotated-sorted-array/?tab=Description
Problem :当前的数组是一个经过排序之后的循环有序数组,但是该数组的主元选择并不一定是下标为i=0的第一个元素。
例如有序数组为:{1,2,3,4,5,6} 
其循环有序数组可能为: {3,4,5,6,1,2}、 {6,1,2,3,4,5}、{4,5,6,1,2,3}等
进行查询操作,使用折半查找。
需要不断判断nums[mid] 与target 
以及 target与 nums[start] 
和 target与nums[end]的大小关系
if (nums[start] <= nums[mid]){//mid大于startif (target < nums[mid] && target >= nums[start])// target在start和mid之间end = mid - 1;elsestart = mid + 1;
}
if (nums[mid] <= nums[end]){//mid小于endif (target > nums[mid] && target <= nums[end])//target在mid和end之间start = mid + 1;elseend = mid - 1;
}      

根据上述的关系,进行对start和end指针的更新操作。
直到 nums[mid] == target时,找到当前下标为mid
循环条件为while(start<=end) 
参考代码:
package leetcode_50;/**** * @author pengfei_zheng* 在数组中查找target 并返回其下标*/
public class Solution33 {public int search(int[] nums, int target) {int start = 0;int end = nums.length - 1;while (start <= end){int mid = (start + end) / 2;if (nums[mid] == target)return mid;if (nums[start] <= nums[mid]){if (target < nums[mid] && target >= nums[start]) end = mid - 1;elsestart = mid + 1;} if (nums[mid] <= nums[end]){if (target > nums[mid] && target <= nums[end])start = mid + 1;elseend = mid - 1;}}return -1;}
}

转载于:https://www.cnblogs.com/zpfbuaa/p/6531773.html

LeetCode 33 Search in Rotated Sorted Array(循环有序数组中进行查找操作)相关推荐

  1. Search in Rotated Sorted Array - 循环有序数组查找问题

    两道题 33. Search in Rotated Sorted Array https://leetcode.com/problems/search-in-rotated-sorted-array/ ...

  2. LeetCode 33. Search in Rotated Sorted Array

    问题链接 LeetCode 33. Search in Rotated Sorted Array 题目解析 给定一个 "升序" 的 无重复 数组,从中寻找目标值."升序& ...

  3. [Leetcode] 33. Search in Rotated Sorted Array 解题报告

    题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7  ...

  4. leetcode 81 Search in Rotated Sorted Array II ----- java

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  5. 【leetcode】Search in Rotated Sorted Array II(middle)☆

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  6. [LeetCode] 81. Search in Rotated Sorted Array II

    题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...

  7. 【leetcode】33. Search in Rotated Sorted Array

    题目如下: 解题思路:题目要求时间复杂度是O(log n),而且数组也是有序的,那么可以考虑采用二分查找法.那么解题的关键就是找出转折点,找到了转折点后,把数组拆分成两段,再分别用二分查找,即可得到答 ...

  8. 33. Search in Rotated Sorted Array

    description: 一个数列,不知道在哪翻转了一下,现在给定一个值,如果他在这个翻转后的数列里, return 它对应的 index Suppose an array sorted in asc ...

  9. LeetCode Online Judge 题目C# 练习 - Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  10. LeetCode Search in Rotated Sorted Array II

     Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...

最新文章

  1. 随身风暴英雄接入云信,玩家即时通讯轻松搞定
  2. 如何使用makefile编译不同平台的目标文件(makefile的参数传递)
  3. 基于云原生2.0,华为云沃土云创计划全面使能伙伴创新升级
  4. CoinDesk将发布2018年比特币和区块链行业报告
  5. SparkSQL实践
  6. 将中缀表达式转换为前缀表达式:
  7. UVC协议学习1--初步了解标准协议规范(UVC1.5为例)
  8. 多元统计分析及R语言建模(第四版)--第二章多元数据的数学表达式及R使用课后习题
  9. win10下Java的JDK11下载与安装教程
  10. 用连续自然数之和来表达整数
  11. 14. Zigbee应用程序框架开发指南 - 睡眠设备
  12. python大纲图_干货!!python自学大纲!
  13. JS window的若干属性和方法
  14. 计算机写给未来自己的一段话,写给未来的自己一句话致未来自己的句子简短励志...
  15. eoj 3279 爱狗狗的两个dalao(dfs)
  16. java课程 数独 文库_一次数独生成及求解方案的剖析(Java实现)
  17. 手机上有哪些超棒超实用的APP让你觉得相见恨晚
  18. Laya页面嵌套和Scene.destory导致的Bug
  19. 即时通讯源码,包含安卓,iOS,H5,MacOS,PC,Java后端
  20. 各大高校视频教程评定

热门文章

  1. 苹果mac需牢记的SSH命令
  2. 16 寸MacBook Pro比14 寸风扇更强大,更耐用
  3. 玩转MacBook的五个使用技巧
  4. 如何通过FTP从Mac快速发送和接收文件
  5. t_user is not mapped [from t_user as u where u.loginname = :loginname and u.password =:password]
  6. radio change事件
  7. [转载]利用TTL值来鉴别操作系统
  8. StringBuilder 使用方法
  9. iOS最新验证电话号码与手机号码的正则方法
  10. 同事乱用分页 MySQL 卡爆,我真是醉了...