Skip to content

Commit 6dfda3a

Browse files
authored
search rotated array added (#273)
search rotated array added
2 parents 72c7821 + 8bbeb01 commit 6dfda3a

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <iostream>
2+
#include <vector>
3+
4+
using namespace std;
5+
6+
int search(vector<int>& nums, int target)
7+
{
8+
int n = nums.size();
9+
10+
int s = 0, e = n - 1;
11+
while (s <= e) {
12+
int mid = s + (e - s) / 2;
13+
if (nums[mid] == target)
14+
return mid;
15+
if (nums[mid] > target) {
16+
if (nums[mid] <= nums[e])
17+
e = mid - 1;
18+
else {
19+
if (target > nums[e])
20+
e = mid - 1;
21+
else
22+
s = mid + 1;
23+
}
24+
}
25+
else {
26+
if (nums[mid] >= nums[s])
27+
s = mid + 1;
28+
else {
29+
if (target > nums[e])
30+
e = mid - 1;
31+
else
32+
s = mid + 1;
33+
}
34+
}
35+
}
36+
return -1;
37+
}
38+
39+
int main() {
40+
vector<int> array;
41+
42+
int number, target;
43+
cin>>target;
44+
45+
while (cin >> number) {
46+
array.push_back(number);
47+
}
48+
49+
cout << search(array, target) << endl;
50+
51+
return 0;
52+
}

0 commit comments

Comments
 (0)