Definition at line 5 of file main.cpp.
◆ maximumCount()
| int Solution::maximumCount |
( |
vector< int > & |
nums | ) |
|
|
inline |
Definition at line 8 of file main.cpp.
9 {
10 int size = (int)nums.size();
11
12
13 if (nums[0] > 0 || (nums[0] < 0 && nums[size - 1] < 0))
14 return size;
15 else if (nums[0] == 0 && nums[size - 1] == 0)
16 return 0;
17
18
19
20 int left = 0;
21 int right = size - 1;
22 int mid_n;
23 while (left <= right)
24 {
25 mid_n = left + (right - left) / 2;
26 if ((nums[mid_n] < 0 && mid_n + 1 >= size) || (nums[mid_n] < 0 && mid_n + 1 < size && nums[mid_n + 1] >= 0))
27 break;
28 if (nums[mid_n] >= 0)
29 right = mid_n - 1;
30 else
31 left = mid_n + 1;
32 }
33
34
35 left = 0;
36 right = size - 1;
37 int mid_p;
38 while (left <= right)
39 {
40 mid_p = left + (right - left) / 2;
41 if ((nums[mid_p] > 0 && mid_p - 1 < 0) || (nums[mid_p] > 0 && mid_p - 1 >= 0 && nums[mid_p - 1] <= 0))
42 break;
43 if (nums[mid_p] <= 0)
44 left = mid_p + 1;
45 else
46 right = mid_p - 1;
47 }
48
49
50 return max(mid_n + 1, size - mid_p);
51 }
Referenced by main().
The documentation for this class was generated from the following file: