Search in Rotated Sorted Array
来源:互联网 发布:ubuntu没有wifi列表 编辑:程序博客网 时间:2024/06/06 20:30
因为不允许有重复元素,a[l] <= a[m] 则可以判断出a[l,m]一定为递增序列,根据mid元素分开的两部分必定有一部分是单调的,另一部分可能非单调。时间O(nlogn),空间O(1)。
class Solution {public: int search(int A[], int n, int target) { if(n == 0) return -1; if(n == 1) return A[0] == target?0:-1; int start = 0, end = n; while(start != end) { int mid = (start+end)/2; if(A[mid] == target) return mid; if(A[start] <= A[mid]) { if(A[start] <= target && target < A[mid]) end = mid; else start = mid+1; } else { if(A[mid] < target && target <= A[end-1]) start = mid+1; else end = mid; } } return -1; }};
最近的实现代码:
class Solution {public: int search(int A[], int n, int target) { int left = 0; int right = n-1; while(left <= right) { int mid = left + (right-left)/2; if(A[mid] == target) { return mid; } if(A[left] <= A[mid]) { if(A[left] <= target && target < A[mid]) right = mid - 1; else left = mid + 1; }else { if(A[mid] < target && target <= A[right]) left = mid + 1; else right = mid - 1; } } return -1; }};
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
- 校赛B 长单词
- 请求重定向
- makefile学习经验(二)----编译生成静态库文件
- MYSQL主从同步故障一例及解决过程!
- SybaseIQ - utility_db介绍
- Search in Rotated Sorted Array
- MFC程序的启动过程与相关函数执行顺序
- 2013级C++第6周(春)项目——对象指针、const
- 对vector等STL标准容器进行排序操作
- CentOS6.5配置DNS
- 数据结构之不相交集类
- leach和leach-c协议仿真
- struts2 路径找不到有以下几个办法
- Maximum number, GCD condition (CodeChef)