Search in Rotated Sorted Array
来源:互联网 发布:mac os 10.9 iso下载 编辑:程序博客网 时间:2024/05/18 21:39
可以采用二分查找。
分为3种情况:
一, 5, 6, 1, 2, 3 即a[mid] < a[start] && a[mid] <= a[end]
二,5, 6, 7, 1, 2 即a[mid] >= a[start] && a[mid] > a[end]
三,1, 2, 3, 4, 5 即a[mid] >= a[start] && a[mid] <= a[end]
这三种情况是针对数组旋转之后的结果分的。当然,对于每一类,我们还需要考虑是排除前一半还是后一半。
class Solution {public: int b_s(int a[], int start, int end, int target) { if(start > end) return -1; int mid = (start + end) >> 1; if(a[mid] == target) return mid; if(a[start] > a[mid] && a[mid] <= a[end]) { if(a[mid] > target || (a[end] < target)) return b_s(a, start, mid - 1, target); else return b_s(a, mid + 1, end, target); } else if(a[mid] >= a[start] && a[mid] > a[end]) { if(a[mid] < target || target < a[start]) return b_s(a, mid + 1, end, target); else return b_s(a, start, mid - 1, target); } else { if(a[mid] > target) return b_s(a, start, mid - 1, target); else return b_s(a, mid + 1, end, target); } } int search(int A[], int n, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function return b_s(A, 0, n - 1, target); }};
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- HDU 1197 Specialized Four-Digit Numbers
- C++ BOOST库 条件变量[多线程通信]机制 [大三四八九月实习]
- android 单元测试用法 简介
- iPhone 通过UIRequiredDeviceCapabilities指定程序适用于哪些设备
- VC++深入详解-第六章学习心得
- Search in Rotated Sorted Array
- 我要长高
- 死循环在BEAB BKPT 0xAB汇编的解决办法
- 报数问题(约瑟夫环)
- 红黑树----大刀阔斧,抽丝剥茧:评红黑树系列文章
- 【转载】Maven、Webx、Velocity学习总结
- Hadoop: the definitive guide 第三版 拾遗 第四章 之MapFile
- vmware workstation 9虚拟机下的win7上网问题
- ios开发 json数据文件的存取