题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个整数数组,求其中负整数和正整数数目中的最大值,0 不属于两者。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
int lowerBound(vector<int>& nums, int target) {
int left = 0, right = nums.size();
while (left < right) {
int mid = left + (right-left)/2;
if (nums[mid] < target) {
left = mid+1;
}
else {
right = mid;
}
}
return left;
}
int maximumCount(vector<int>& nums) {
int neg = lowerBound(nums, 0);
int pos = nums.size()-lowerBound(nums, 1);
//cout << neg << " " << pos << endl;
return max(neg, pos);
}
};