两次二分,LeetCode 2529. 正整数和负整数的最大计数

一、题目

1、题目描述

给你一个按 非递减顺序 排列的数组 nums ,返回正整数数目和负整数数目中的最大值。

  • 换句话讲,如果 nums 中正整数的数目是 pos ,而负整数的数目是 neg ,返回 pos 和 neg二者中的最大值。

注意:0 既不是正整数也不是负整数。

2、接口描述

python3
class Solution:
    def maximumCount(self, nums: List[int]) -> int:
cpp
class Solution {
public:
    int maximumCount(vector<int>& nums) {
        
    }
};

3、原题链接

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


二、解题报告

1、思路分析

二分找到第一个 ≥ 0 的数的下标 i,负数个数即i

二分找到第一个 > 0 的数的下标 i,正数个数即n - i

返回二者中大的那一个

2、复杂度

时间复杂度: O(logn)空间复杂度:O(1)

3、代码详解

python3
class Solution:
    def maximumCount(self, nums: List[int]) -> int:
        neg = bisect_left(nums, 0)
        pos = len(nums) - bisect_right(nums, 0)
        return max(pos, neg)
cpp
class Solution {
public:
    int maximumCount(vector<int>& nums) {
        int neg = lower_bound(nums.begin(), nums.end(), 0) - nums.begin();
        int pos = nums.end() - upper_bound(nums.begin(), nums.end(), 0);
        return max(neg, pos);
    }
};

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 23:10:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 23:10:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 23:10:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 23:10:02       18 阅读

热门阅读

  1. 基于springboot的车辆管理系统源码数据库

    2024-04-12 23:10:02       21 阅读
  2. vue3表格编辑(数据回显)和删除功能实现

    2024-04-12 23:10:02       21 阅读
  3. 【NC23803】DongDong认亲戚

    2024-04-12 23:10:02       55 阅读
  4. 【华为OD机试C++】蛇形矩阵

    2024-04-12 23:10:02       17 阅读
  5. 【算法刷题day24】回溯算法+简单剪枝

    2024-04-12 23:10:02       76 阅读
  6. 虚拟线程和普通线程

    2024-04-12 23:10:02       15 阅读
  7. 递归神经网络(Recursive Neural Networks)

    2024-04-12 23:10:02       16 阅读
  8. 题目 2011: 电导流的矩形

    2024-04-12 23:10:02       17 阅读