File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed
Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments