题目

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return -1.

You may assume no duplicate exists in the array.

原题链接(点我)

解题思路

旋转数组中的查找。

[1, 2, 3, 4, 5, 6]的一个旋转数组为[4, 5, 6, 1, 2, 3]。在旋转数组中寻找一个数。
最直接的方法。一次遍历。时间复杂度O(n)。可是既然是一个部分有序的数组,那么对于有序的部分我们能够想方法用二分查找。这个能够提高效率。

代码实现

class Solution {
public:int search(int A[], int n, int target) {if(A==NULL || n<=0) return -1;int begin = 0, end = n-1;while(begin<=end){int mid = begin + (end-begin)/2;if(A[mid] == target)return mid;if(A[mid] > A[end]){//前半段if(A[begin]<=target && A[mid] > target){//target 在 begin 和 mid-1 之间end = mid-1;}else{begin = mid+1;}}else if(A[mid] < A[end]){//在后半段if(A[mid] < target && A[end] >=target){//target 在 mid+1 和 end 之间begin = mid+1;}else{end = mid-1;}}else{// 由于这个题数组中不含有反复元素,此时begin==end==mid而且A[mid]!=target。所以不存在break;}}return -1;}
};
假设你认为本篇对你有收获,请帮顶。
另外,我开通了微信公众号--分享技术之美,我会不定期的分享一些我学习的东西.
你能够搜索公众号:swalge 或者扫描下方二维码关注我
(转载文章请注明出处: http://blog.csdn.net/swagle/article/details/30471141 )

转载于:https://www.cnblogs.com/yxwkf/p/5222886.html

[LeetCode] Search in Rotated Sorted Array [35]相关推荐

  1. LeetCode Search in Rotated Sorted Array II

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

  2. LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索

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

  3. leetcode - Search in Rotated Sorted Array II

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

  4. leetcode: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 ...

  5. [leetcode]Search in Rotated Sorted Array @ Python

    原题地址:https://oj.leetcode.com/problems/search-in-rotated-sorted-array/ 题意: Suppose a sorted array is ...

  6. [leetcode]Search in Rotated Sorted Array II

    这道题目仍然是二分,去掉不可能的部分.用了递归,在重复的情况下,就是有可能最左边的和最右边的相等,此时就不能直接判断出区间外的元素,左右两边同时递归.有重复元素的时候,在bad case的时候会退化为 ...

  7. [LeetCode] Search in Rotated Sorted Array

    二分 : 判断条件 当a[left] <= a[mid]时,可以肯定a[left..mid]是升序的 循环有序 一共有以下两种情况 第一种  / / / / / / 条件: (A[mid] &g ...

  8. 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 ...

  9. LeetCode 33. Search in Rotated Sorted Array

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

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

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

最新文章

  1. python 点云las、laz文件的读取、写入、压缩
  2. 创建MYSQL的储存过程
  3. Grub 修复(文件损坏)有备份
  4. java linux路径 home_根据linux自带的JDK,配置JAVA_HOME目录
  5. Python3学习笔记:使用代理访问url地址
  6. python获取列表中指定元素的下标
  7. sublime 2 中常用快捷键
  8. 工作单元php,php – 无法从工作单元测试用例构建最简单的套件
  9. 0301 - 一个比价的小项目
  10. CodeForces - 967D Resource Distribution(贪心+二分+构造)
  11. Java Serializable:明明就一个空的接口嘛
  12. 【C语言】单链表的相关热点面试题(包括:从尾到头打印,逆置,冒泡,寻找中间节点,倒数k节点)
  13. [html]html实现页面跳转都有哪些方法?
  14. Django - 模板相关
  15. 网页空间 - 概念篇
  16. ExcelHandle
  17. 银行软件测试工作量分析和评估方法(转)
  18. C++ 构造函数体内赋值与初始化列表的区别
  19. pylot网站压力测试
  20. 对路径的访问被拒绝怎么办_工作组计算机无法访问,教您无法访问工作组计算机的解决技巧...

热门文章

  1. 【RLchina第二讲】汪军老师推荐的强化学习理论学习资料
  2. 【NIPS 2017】基于深度强化学习的想象力增强智能体
  3. 烹佛烹祖大炉鞴,锻凡锻圣恶钳锤
  4. Linux之ssh无密码登录
  5. Java 实现--时间片轮转 RR 进程调度算法
  6. DateTimePicker 控件置空
  7. 如何修改maven默认仓库(即repository)的路径
  8. python学习第二十三节(反射以及小工具)
  9. 修改CentOS 7默认语言为中文
  10. 2018-2019-2 20165209 《网络对抗技术》Exp7: 网络欺诈防范