MCPcopy Create free account
hub / github.com/Ainevsia/Leetcode-Rust / search

Method search

81. Search in Rotated Sorted Array II/Solution.cpp:9–31  ·  view source on GitHub ↗

edge case n.size() == 0 buffer overflow : not exist case !!! two element !

Source from the content-addressed store, hash-verified

7 /// edge case n.size() == 0
8 /// buffer overflow : not exist case !!! two element !
9 bool search(vector<int>& n, int t) {
10 int l = 0, r = n.size() - 1;
11 if (l > r) return false;
12 while (l < r) {
13 int m = (l + r) / 2;
14 if (m == l) return n[l] == t ? true : n[r] == t ? true: false;
15 if (n[m] == t) return true;
16 if (n[l] == n[r]) l++;
17 else if (n[l] < n[r]) {
18 if (t < n[l] or t > n[r]) return false;
19 if (n[m] > t) r = m - 1;
20 else l = m + 1;
21 } else {
22 if (n[m] >= n[l])
23 if (n[l] <= t and t <= n[m-1]) r = m-1;
24 else l = m + 1;
25 else
26 if (n[m+1] <= t and t <= n[r]) l = m+1;
27 else r = m - 1;
28 }
29 }
30 return n[l] == t ? true : false;
31 }
32};

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected