http://oj.leetcode.com/problems/search-in-rotated-sorted-array/

转换了一次的有序数组,进行类似二分查找。

从begin到mid和从mid到end,二者中肯定有一个是有序的。

#include <iostream>
using namespace std; class Solution {
public:
int binarySearch(int A[],int target,int begin,int end)
{
int mid = (begin+end)/; if(target == A[mid])
return mid;
if(target == A[begin])
return begin;
if(target == A[end])
return end;
if(begin>=end)
return -; if(A[begin]<A[mid])//前面有序
{
if(target>A[begin] && target<A[mid]) //在前面
return binarySearch(A,target,begin,mid-);
else
return binarySearch(A,target,mid+,end); //在后面
}
else if(A[mid]<A[end])//后面有序
{
if(target>A[mid] && target<A[end]) //在后面
return binarySearch(A,target,mid+,end);
else
return binarySearch(A,target,begin,mid-);//在前面
}
return -;
}
int search(int A[], int n, int target) {
return binarySearch(A,target,,n-);
}
}; int main()
{
Solution myS;
int A[] = {,,,,,,};
int ans = myS.search(A,,);
cout<<ans<<endl;
return ; }

最新文章

  1. 从零自学Hadoop(18):Hive的CLI和JDBC
  2. ReactiveCocoa源码拆分解析(四)
  3. .NET简谈接口
  4. eclipse中手动导入DTD文件的方式
  5. Leetcode 1 two sum 难度:0
  6. 部署搭建 Saltstack(centos6.6)
  7. Android 文件的选择
  8. Android开发-API指南-Content Provider
  9. node操作MongoDB数据库之插入
  10. HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-ISAPI-4.0_32bit”在其模块
  11. C++ 头文件系列(iterator)
  12. Linux下查看文件内容的命令和工具
  13. 《物联网框架ServerSuperIO教程》- 23.动态数据接口增加缓存,提高数据输出到OPCServer和(实时)数据库的效率
  14. php获取两个时间戳之间相隔多少天多少小时多少分多少秒
  15. 运维面试题之k8s
  16. response响应
  17. SQL 性能分析
  18. 【问题解决:信息提示】SpringBoot启动时提示The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
  19. js弹出层学习
  20. 基于Pygame写的翻译方法

热门文章

  1. PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
  2. iOS 设计模式
  3. SVN的配置
  4. 控制器生命周期方法(LifeCycle)
  5. BZOJ4513 SDOI2016 储能表 记忆化搜索(动态规划)
  6. Git学习——版本切换
  7. tensorboard以时间命名每一个文件夹
  8. python中set()函数的用法
  9. Python 对Mysql的操作
  10. 对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App)