leetcode2529--正整数和负整数的最大计数

04-14 1589阅读

1. 题意

给定有序数组,求其中正整数和负整数的计数最大值。

leetcode2529--正整数和负整数的最大计数
(图片来源网络,侵删)

正整数和负整数的最大计数

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 neg  
2.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);
    }
};
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]