LeetCode OJ--Search in Rotated Sorted Array II
2024-09-04 13:05:43
http://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/
如果在数组中有重复的元素,则不一定说必定前面或者后面的一半是有序的,所以有个while循环的处理。
#include <iostream>
using namespace std; class Solution {
public:
bool binarySearch(int A[],int target,int begin,int end)
{
int mid = (begin+end)/; if(target == A[mid])
return true;
if(target == A[begin])
return true;
if(target == A[end])
return true;
if(begin>=end)
return false; while(A[begin] == A[mid])
begin++;
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])//后面有序
{
while(A[mid] == A[end])
end--;
if(target>A[mid] && target<A[end]) //在后面
return binarySearch(A,target,mid+,end);
else
return binarySearch(A,target,begin,mid-);//在前面
}
return false;
}
bool search(int A[], int n, int target) {
return binarySearch(A,target,,n-);
}
}; int main()
{
Solution myS; int A[] = {,,,,};
bool ans = myS.search(A,,);
cout<<ans<<endl;
return ; }
最新文章
- 三道简单的前端HTML/CSS题目
- jquery获取(设置)节点的属性与属性值
- Qt窗体内控件自适应调整大小
- C++ Primer : 第二章:变量和基本类型(1)
- android学习笔记七——控件(DatePicker、TimePicker、ProgressBar)
- js鼠标及对象坐标控制属性详细解析
- SVN备份教程(二)
- SQL Server 可疑的解决办法
- 九度OnlineJudge之1018:统计同成绩学生人数
- 关于IO多路复用的一篇好文
- 最短路<;dijk>;
- Hibernate 乐观锁(Optimistic Locking)
- javascript中的隐式类型转化
- JUC
- VS2013使用滚动条缩略图、双击选中高亮、配色方案、代码竖虚线(缩进标尺)
- linux中pam模块
- StiReport简单使用
- Codeforces 124A - The number of positions
- Oracle面试相关
- 【转】【计算机视觉】opencv靶标相机姿态解算2 根据四个特征点估计相机姿态 及 实时位姿估计与三维重建相机姿态