Search in Rotated Sorted Array
来源:互联网 发布:system halted linux 编辑:程序博客网 时间:2024/04/30 11:39
class Solution {public: int search(int A[], int n, int target) { if(n==0) { return -1; } if(n==1) { if(target==A[0]) { return 0; } else { return -1; } } int part1Min=A[0]; int part2Max=A[n-1]; int start=0; int end=n; if(part1Min>part2Max) { //find the start of the second part int pstart=0; int pend=n-1; while(pstart<pend) { int mid=pstart+(pend-pstart)/2; if(A[mid]<part1Min) { pend=mid; } else { pstart=mid+1; } } int part2Start=pstart; if(target<part1Min) { start=part2Start; end=n; } else { start=0; end=part2Start; } } while(start<end) { int mid=start+(end-start)/2; if(A[mid]==target) { return mid; } else if(A[mid]>target) { end=mid; } else { start=mid+1; } } return -1; }};
基本思路是,首先判断是否存在旋转,如果不存在,就是一个基本的2分查找;如果存在,找到旋转后第二部分的起点,判断target位于那一部分,然后在对应的部分里进行二分查找即可。
0 0
- 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
- 一个典型的简单shell字符串处理脚本
- The Rise of Encrypted Traffic
- git常用命令
- 为什么String是不可变的
- VM Depot 分布式计算框架主题应用精选
- Search in Rotated Sorted Array
- IE8下,采用autocomplete插件不展示补全信息
- RAC检查命令
- ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素
- 深入理解java异常处理机制
- 《Android 4 高级编程》学习笔记之动画
- SVN如何更换账户
- 未完成的IT路停在回车键---2014年末总结篇
- 网络socket编程指南