2563. 统计公平数对的数目

题目:

给你一个下标从 0 开始、长度为 n 的整数数组 nums ,和两个整数 lower 和 upper ,返回 公平数对的数目 。

如果 (i, j) 数对满足以下情况,则认为它是一个 公平数对 :

0 <= i < j < n,且
lower <= nums[i] + nums[j] <= upper

示例 1:

输入:nums = [0,1,7,4,4,5], lower = 3, upper = 6
输出:6
解释:共计 6 个公平数对:(0,3)、(0,4)、(0,5)、(1,3)、(1,4) 和 (1,5) 。
示例 2:

输入:nums = [1,7,9,2,5], lower = 11, upper = 11
输出:1
解释:只有单个公平数对:(2,3) 。

思路:

  1. 目标是求解两个不等式0 <= i < j < n和
    lower <= nums[i] + nums[j] <= upper

    我们可以简化变量化为只关于nums[i]的一个不等式
    lower-nums[j]<=nums[i]<=upper-nums[j]
    那么怎么实现呢?
    我们可以这么想:
    我们可以求利用bisect_right函数来求上边界即 nums[i]<= upper-nums[j]的个数
    再利用bisect_left函数来求下边界即 lower-nums[j]<=nums[i]的个数
    两者一减就是 符合不等式的nums[i]的个数即也是公平对的对数

语法知识:

r=bisect_right(nums,upper-value,0,j)
是在nums[0]-nums[j]中的范围中找寻比upper-nums[j]中大的元素的下标,这里的nums[j]用当前的值value替代

代码:

class Solution(object):def countFairPairs(self, nums, lower, upper):nums.sort()//对数组进行排序sum=0for j,value in enumerate(nums):r=bisect_right(nums,upper-value,0,j)l=bisect_left(nums,lower-value,0,j)sum+=r-lreturn sum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/26641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 算法:轮转数组c++

原题链接&#x1f517;&#xff1a;轮转数组 难度&#xff1a;中等⭐️⭐️ 题目 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步…

Yolo-World训练过程中使用wandb进行可视化

训练过程可视化有两种方式&#xff1a;wandb和tensorboard&#xff0c;这里我采用的是wandb&#xff0c;想要在训练过程中调用wandb只需要在要训练的配置文件&#xff08;如yolo_world_v2_l_vlpan_bn_sgd_1e-3_40e_8gpus_finetune_coco.py&#xff09;中加上一行代码即可&#…

9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程

9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程 前情回顾&#xff1a;9.1.2 简单介绍两阶段模型R-CNN、SPPNet、Fast R-CNN、Faster R-CNN的发展过程 摘要 YOLOYOLOv2YOLO9000YOLOv3基本思想使用一个端到端的卷积神经网络直接预测目标的类别和位置针对YOL…

【源码】SpringBoot编程式事务使用及执行原理

Spring事务 1、【源码】SpringBoot事务注册原理 2、【源码】Spring Data JPA原理解析之事务注册原理 3、【源码】Spring Data JPA原理解析之事务执行原理 4、【源码】SpringBoot编程式事务使用及执行原理 前言 《Spring事务系列》的前面几篇博文讲解了通过Transactional注…

FPGA - 滤波器 - FIR滤波器设计

一&#xff0c;数字滤波器 滤波器是一种用来减少或消除干扰的器件&#xff0c;其功能是对输入信号进行过滤处理得到所需的信号。滤波器最常见的用法是对特定频率的频点或该频点以外的频率信号进行有效滤除&#xff0c;从而实现消除干扰、获取某特定频率信号的功能。一种更广泛的…

如何高效管理和监控 Elasticsearch 别名及索引?

0、引言 在 Elasticsearch 项目中&#xff0c;管理和监控索引是开发者的一项重要任务。 尤其是当我们需要在项目的管理部分展示索引和别名的统计信息时&#xff0c;了解如何有效地列出这些别名和索引显得尤为重要。 本篇博客将介绍几种在 Elasticsearch 中列出别名和索引的方法…

【Hudi】核心概念-基本概念

目录 基本概念时间轴(TimeLine)Instant action:在表上执行的操作类型Instant timeState两个时间概念 文件布局(File Layout)索引(Index)原理索引选项全局索引与非全局索引索引的选择策略 表类型(Table Types)查询类型Snapshot QueriesIncremental QueriesRead Optimized Querie…

集合并集交集差集【工具类】

一、使用Stream流进行处理 在Java开发中&#xff0c;对于集合的操作是非常常见的&#xff0c;特别是交集、并集和差集这样的操作。这些操作可以通过Java 8中的Stream API来实现。 •交集&#xff1a;取两个集合中相同的部分。例如&#xff0c;如果我们有两个List集合&#xff…

【2024最新精简版】Redis面试篇

文章目录 什么是红锁Redis有哪些框架&#xff1f;你们项目中哪里用到了Redis ?Redis的常用数据类型有哪些 ?Redis的数据持久化策略有哪些 ?Redis的数据过期策略有哪些 ?Redis的数据淘汰策略有哪些 ?你们使用Redis是单点还是集群 ? 哪种集群 ?Redis集群有哪些方案, 知道嘛…

iOS--oc对象,类,和元类本质

iOS--oc对象&#xff0c;类&#xff0c;和元类本质 前言实例对象的具体结构自定义类对象的结构继承关系 类信息的存放对isa、superclass总结 前言 最近在学习runtime的过程中&#xff0c;发现其中消息发送-动态方法解析-消息转发中涉及到了大量的类与对象的底层知识&#xff0…

在linux系统上挂载新硬盘

服务器的硬盘空间不够了&#xff0c;自己重新安装了一个硬盘&#xff0c;需要挂载&#xff0c;因为只是用来存放数据&#xff0c;所以不需要分区&#xff0c;直接挂载就可以 #查看当前所有硬盘 sudo fdisk -l #用于显示文件系统的磁盘空间使用情况 df -h发现一个/dev/nvme0n1 …

mysql索引失效的几种情况

1、对列进行计算或者是使用函数&#xff0c;则该列的索引会失效 如&#xff1a;substring(字段名,1,2)‘xxx’&#xff1b; 如&#xff1a;select * from test where id-19;//错误的写法&#xff1b; select * from test where id10; //正确的写法 &#xff1b; 2、某些情况下…

java.nio.charset.UnmappableCharacterException

问题 java.lang.IllegalArgumentException: java.nio.charset.UnmappableCharacterException: Input length 1 解释为编码转换有问题 问题错在位置 非汉字存在 打包的时候就会报异常

TikTok限流封号要如何处理

随着TikTok在全球范围内的运营和管理越来越规范&#xff0c;对于违规行为的处罚也日趋严格。其中&#xff0c;限流和封号是两种常见的处罚措施。那么&#xff0c;当TikTok账号遭遇限流或封号时&#xff0c;我们应该如何处理呢&#xff1f; 一、了解限流和封号的原因 在处理Ti…

Zoom会议网络连接不稳定怎么办?

随着远程办公和在线会议的普及&#xff0c;Zoom已成为许多企业的重要办公工具。然而&#xff0c;国内企业在使用Zoom进行线上会议时&#xff0c;常常面临网络不稳定和中断的问题&#xff0c;这不仅影响会议效率&#xff0c;还可能给企业带来损失。那么&#xff0c;Zoom会议网络…

meilisearch的分页

Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需求&#xff0c;极快&#xff0c;单文件&#xff0c;超轻量。 所以&#xff0c;对于中小型项目来说…

APP分发平台在推广过程起到什么作用?

APP分发平台在推广过程中起到了至关重要的作用&#xff0c;这些作用主要体现在以下几个方面&#xff1a; 扩大应用覆盖面和市场份额&#xff1a;APP分发平台作为连接开发者和用户的桥梁&#xff0c;通过不同的分发渠道&#xff08;如应用商店、第三方分发平台等&#xff09;&a…

人生感悟 | 我们为什么贫穷?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 我们为什么贫穷&#xff1f; 因为我们都在局中并坦然的按着规则制定者循规蹈矩的生活。 01 负债导致贫穷 最近同事买房&#xff0c;总价一百多万&#xff0c;月供四千多&#xff0c;讲话&#xff1a;已入坑&#xff0…

python如何终止程序运行

方法1&#xff1a;采用sys.exit(0)&#xff0c;正常终止程序&#xff0c;从图中可以看到&#xff0c;程序终止后shell运行不受影响。 方法2&#xff1a;采用os._exit(0)关闭整个shell&#xff0c;从图中看到&#xff0c;调用sys._exit(0)后整个shell都重启了&#xff08;RESTAR…

SSC30KD SigmaStar 摄像头主控芯片

SSC30KD SigmaStar 摄像头主控芯片