leetcode2529--正整数和负整数的最大计数
1. 题意
给定有序数组,求其中正整数和负整数的计数最大值。
(图片来源网络,侵删)
正整数和负整数的最大计数
2. 题解
2.1 遍历
直接判断
class Solution { public: int maximumCount(vector& nums) { int neg = 0; int pos = 0; for (int num:nums) { if (!num) continue; if (num & 0x80000000 ) neg++; else pos++; } return neg2.2 二分查找
二分查找第一个非负值和第一个正值。
class Solution { public: bool check(int l, int r, vector &nums, int target) { int sum = 0; for (int i = l; i = target; } int minSubArrayLen(int target, vector& nums) { int l = 0; int sum = 0; int sz = nums.size(); int ans = INT_MAX; vector pre(sz + 1, 0); int preSum = 0; for (int i = 0;i > 1) + l; // cout ans = min(l - i + 1, ans); } } return ans == INT_MAX ? 0 : ans; } }; public: int maximumCount(vector auto non_neg = lower_bound(nums.begin(), nums.end(), 0) - nums.begin(); auto pos = upper_bound(nums.begin(), nums.end(), 0); return max(non_neg, nums.end()- pos); } };
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。