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

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

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

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

思路:灵神 闭区间写法,>= > < <=转化

代码:

java 复制代码
class Solution {
    public int maximumCount(int[] nums) {
        int posi  = lowerBound(nums, 1);
        int nega = lowerBound(nums, 0) - 1;
        return Math.max(nega + 1, nums.length - posi);
    }

    private int lowerBound(int[] nums, int target) {
        int left = 0, right = nums.length - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        return left;
    }
}

性能:

时间复杂度o(logn)

空间复杂度o(1)

相关推荐
春弦_4 分钟前
LeetCode Hot 100 刷题笔记
笔记·leetcode·哈希算法
zhangdaliangmvp5 分钟前
快速排序的学习理解:从基础分治到三路划分优化
c++·学习·算法
OxYGC7 分钟前
Spring 面经系列 · 第 6 篇:Spring MVC 请求全流程、父子容器与零配置原理
java·spring·mvc
code2cat10 分钟前
Java高级篇之JDBC:连接数据库,完成查询、更新与事务
java·开发语言·数据库
乐迪信息12 分钟前
AI算法盒子船体烟火检测:港口火灾早预警
人工智能·深度学习·算法
bksczm15 分钟前
Redis数据结构之string
java·redis·mybatis
cc_瀚海知行18 分钟前
资料检索 1|直接放入全文、按需读文件和先检索,有什么区别?
java·人工智能·ai
lisw0533 分钟前
发酵算法两大应用方向解析
算法·数学建模
BioRunYiXue37 分钟前
使用docker分析高通量测序数据
java·数据库·人工智能·spring cloud·docker·tomcat·html
Shaoshing1 小时前
缓存一致问题及常见解决方案
java·缓存