[LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)
来源:互联网 发布:闪电的利用知乎 编辑:程序博客网 时间:2024/05/29 16:21
索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql)
Github: https://github.com/illuz/leetcode
033. Search in Rotated Sorted Array (Hard)
链接:
题目:https://leetcode.com/problems/search-in-rotated-sorted-array/
代码(github):https://github.com/illuz/leetcode
题意:
在一个旋转过的有序数组中找一个数。
比如 4 5 6 7 0 1 2
就是一个“旋转过的有序数组”。
分析:
这是单纯二分搜索的变形。
因为旋转过不好定位,所以在找的时候可以先判断一下一个区间是完全有序的还是已经旋转过的,然后分类讨论。
代码:
C++:
class Solution {public:int search(int A[], int n, int target) {int left = 0, right = n;while (left != right) {int mid = (left + right) / 2;if (A[mid] == target)return mid;if (A[mid] >= A[left]) {// [left~mid] is unrotated sortedif (A[left] <= target && target < A[mid])right = mid;elseleft = mid + 1;} else {// [mid~right] is unrotated sortedif (A[mid] < target && target <= A[right - 1])left = mid + 1;elseright = mid;}}return -1;}};
1 0
- [LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)
- [Leetcode 33, Hard] Search in Rotated Sorted Array
- Leetcode 33. Search in Rotated Sorted Array (Hard) (cpp)
- Leetcode 33. Search in Rotated Sorted Array (Hard) (java)
- Search in Rotated Sorted Array(hard)
- [leetcode][search] Search in Rotated Sorted Array
- [C++]LeetCode: 43 Search in Rotated Sorted Array
- [C++]LeetCode: 44 Search in Rotated Sorted Array II
- [leetcode-33]Search in Rotated Sorted Array(C)
- [leetcode-81]Search in Rotated Sorted Array II(C)
- leetcode刷题系列C++-Search in Rotated Sorted Array
- 【C++】【LeetCode】33. Search in Rotated Sorted Array
- Leetcode c语言-Search in Rotated Sorted Array
- 【LeetCode算法练习(C++)】Search in Rotated Sorted Array
- LeetCode: Search in Rotated Sorted Array
- LeetCode: Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array
- LeetCode Search in Rotated Sorted Array II
- C-Free 无法使用调试的解决方法
- 获取应用的当前版本号&获取当前android系统的版本号
- 一个简单方法:构造xml的document,并将其转换为string
- PHP乱码?Mysql乱码?
- Java虚拟机(JVM)中的内存设置详解
- [LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)
- shell脚本中的$*,$@和$#
- 数组最值
- intent和intentfilter
- (hdu step 6.3.1)Strategic Game(求用最少顶点数把所有边都覆盖,使用的是邻接表)
- Linux下在防火墙中开启80端口、3306端口的方法
- GitHub 优秀的 Android 开源项目
- 指针函数与函数指针
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (上)