LeetCode 1885. Count Pairs in Two Arrays(二分查找)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

Given two integer arrays nums1 and nums2 of length n, count the pairs of indices (i, j) such that i < j and nums1[i] + nums1[j] > nums2[i] + nums2[j].

Return the number of pairs satisfying the condition.

Example 1:
Input: nums1 = [2,1,2,1], nums2 = [1,2,1,2]
Output: 1
Explanation: The pairs satisfying the condition are:
- (0, 2) where 2 + 2 > 1 + 1.Example 2:
Input: nums1 = [1,10,6,2], nums2 = [1,4,1,5]
Output: 5
Explanation: The pairs satisfying the condition are:
- (0, 1) where 1 + 10 > 1 + 4.
- (0, 2) where 1 + 6 > 1 + 1.
- (1, 2) where 10 + 6 > 4 + 1.
- (1, 3) where 10 + 2 > 4 + 5.
- (2, 3) where 6 + 2 > 1 + 5.Constraints:
n == nums1.length == nums2.length
1 <= n <= 10^5
1 <= nums1[i], nums2[i] <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-pairs-in-two-arrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先进行不等式变换,nums1[i]−nums2[i]>nums2[j]−nums1[j]nums1[i]-nums2[i] > nums2[j]-nums1[j]nums1[i]nums2[i]>nums2[j]nums1[j], 两数组做差得到 diff 数组
  • diff[i]+diff[j]>0diff[i] + diff[j] > 0diff[i]+diff[j]>0diff 数组排序,对每个 diff[i],查找 另一个的下限,计算有多少数满足
class Solution {
public:long long countPairs(vector<int>& nums1, vector<int>& nums2) {// 等价于 nums1[i]-nums2[i] > nums2[j]-nums1[j],  i < j// diff[i] + diff[j] > 0, i,j顺序调换也可以满足,所以只需 i!=jint n = nums1.size();vector<int> diff(n);for(int i = 0; i < n; ++i)diff[i] = nums1[i] - nums2[i];sort(diff.begin(), diff.end());long long ans = 0;for(int i = 0; i < n; ++i){auto it = lower_bound(diff.begin(), diff.end(), -diff[i]+1);ans += diff.end()-it;//这么多数满足if(it <= diff.begin()+i)//包含了i,减 1ans--;}return ans/2; // i < j 有一半是重复的}
};

228 ms 92.8 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

hal库开启中断关中断_STM32对HAL库的定时器中断

从串口中断&#xff0c;到外部中断再到现在的定时器中断&#xff0c;越来越感觉HAL库应用比较好用&#xff0c;虽然一开始理解上面有点怪&#xff0c;但是网上查询一下就能够学会。定时器中断分为两个重点&#xff0c;1、在应用CUBEMX时配置定时器的分频数以及时钟树设置 2、生…

How to Avoid Producing Legacy Code at the Speed of Typing

英语不好翻译很烂。英语好的去看原文。 About the Author I am a software architect/developer/programmer.I have a rather pragmatic approach towards programming, but I have realized that it takes a lot of discipline to be agile. I try to practice good craftsman…

c语言程序做成可执行文件,windows环境下C程序生成可执行文件

windows环境下&#xff0c;编写C程序&#xff0c;生成.exe&#xff0c;用于操作某个文件。包含三部分&#xff1a;搭建环境、程序实现、程序分析。1、搭建程序编写和编译环境在windows下安装Git Bash(下载页面)。安装完成后&#xff0c;可以在windows的任意文件夹下&#xff0c…

LeetCode MySQL 1890. 2020年最后一次登录(year)

文章目录1. 题目2. 解题1. 题目 表: Logins -------------------------- | 列名 | 类型 | -------------------------- | user_id | int | | time_stamp | datetime | --------------------------(user_id, time_stamp) 是这个表的主键。 每一…

大锅菜机器人_炒菜机或者炒菜机器人有好用的吗 - 玩主论坛

好像公司还在&#xff0c;出新型号了。智能烹饪机炒菜视频&#xff1a;http://videotudoucom/v/XMTk3MDkwNDU5Nghtml智能烹饪机将主(菜、肉、鱼……)副料一次性投入&#xff0c;选定菜系&#xff0c;轻触按钮&#xff0c;一般家常菜肴仅三分钟即可出锅食用。本机具有自动翻炒功…

高效开发--crm开发有悟

今天我计划许久的回访单功能模块&#xff0c;还是没有实现&#xff0c;没有搞定。心中很是苦闷啊&#xff01;&#xff01;&#xff01;原因&#xff1a;自己想去吧。以后怎么做&#xff1a;什么也是纸老虎&#xff0c;程序研发太简单&#xff0c;只要弄清了需求&#xff0c;其…

LeetCode MySQL 1873. 计算特殊奖金(case when then else end)

文章目录1. 题目2. 解题1. 题目 表: Employees ---------------------- | 列名 | 类型 | ---------------------- | employee_id | int | | name | varchar | | salary | int | ----------------------employee_id 是这个表的主键。 此表的每…

href 带参数 打开exe_js调用winform程序(带参数)

我们会发现,我们点击迅雷下载的时候 网页可以调用应用程序,而且连接会传入迅雷,这个是怎么做到的呢?原理: 先注册表中添加软件的具体信息,然后通过 href 可以直接调用1.写入注册表信息,注册,如果不需要参数 只要第一个HKEY_CLASSES_ROOT\test 段落Windows Registry Editor Ve…

c语言variant是什么变量,介绍一些常用数据类型的使用。先定义一些常见类型变量借以.doc...

介绍一些常用数据类型的使用。先定义一些常见类型变量借以说明int i 100;long l 2001;float f300.2;double d12345.119;char username[]"张三";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符串短整型(int)itoa(i,tem…

What code you will get when you create a wcf library

创建wcf服务库的时候&#xff0c;系统自动生成的代码 // 注意: 使用“重构”菜单上的“重命名”命令&#xff0c;可以同时更改代码和配置文件中的接口名“IService1”。[ServiceContract]public interface IService1{[OperationContract]string GetData(int value);[OperationC…

LeetCode 1868. 两个行程编码数组的积(双指针)

文章目录1. 题目2. 解题2.1 模拟超时2.2 优化1. 题目 行程编码&#xff08;Run-length encoding&#xff09;是一种压缩算法&#xff0c;能让一个含有许多段连续重复数字的整数类型数组 nums 以一个&#xff08;通常更小的&#xff09;二维数组 encoded 表示。 每个 encoded[…

结巴分词有前空格_jieba英文空格分词问题

1.对于关键词存在空格或者特殊符号的情况下&#xff0c;jieba无法分出该词2.在github上找到了一个解决方案&#xff0c;修改jieba源码__init__.py免费分享&#xff0c;造损免责。打开默认词典(根目录)或自定义词典&#xff0c;把所有用来间隔词频和词性的空格间隔符改成(选用是…

linux socket 面试题,面试题

1、网络TCP/IP协议2、三层路由架构&#xff0c;搭建局域网3、自动化测试工具robotframework的使用&#xff0c;怎么管理测试脚本4、shell脚本可用过&#xff1f;怎么替换一个文本中指定的内容&#xff1f;5、python的多线程怎么使用的&#xff1f;正则表达式中serach和match的区…

Core Location :⽤用于地理定位

Core Location :⽤用于地理定位 在移动互联⽹网时代,移动app能解决⽤用户的很多⽣生活琐事,⽐比如 导航:去任意陌⽣生的地⽅方 周边:找餐馆、找酒店、找银⾏行、找电影院 在上述应⽤用中,都⽤用到了地图和定位功能,在iOS开发中,要想加⼊入这2⼤大功 能,必须基于2个框架进⾏…

LeetCode MySQL 1587. 银行账户概要 II

文章目录1. 题目2. 解题1. 题目 表: Users ----------------------- | Column Name | Type | ----------------------- | account | int | | name | varchar | -----------------------account 是该表的主键. 表中的每一行包含银行里中每一个用户的账号…

取多补少C语言,leetcode题目: 数字的补数 的C语言解法

题目链接题目内容给定一个正整数&#xff0c;输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位)&#xff0c;其补数为010。所以你需…

wpf mvvm MenuItem的Command事件

这是一个事件的辅助类&#xff0c;可以通过它实现MenuItem的Command事件 public class MyCommands : Freezable, ICommand, ICommandSource{public MyCommands() {}public static readonly DependencyProperty CommandParameterProperty DependencyProperty.Register("Com…

python写字板_pywinauto简单操作写字板的例子

前段时间写了做web程序界面自动化的简单例子&#xff0c;今天写一下windows gui程序界面自动化测例子吧。def openwordpad():app application.Application()wordpadapp.start(r"C:\Program Files\Windows NT\Accessories\wordpad.exe")wordpad.wordpadclass.RICHEDI…

c语言 spawn函数,我在electron程序中spawn了一个C语言程序作为子进程,我该如何与这个子进程通信?...

C语言的代码为&#xff1a;#include int main(){int i 0;scanf("%d", &i);printf("%d\n", i);scanf("%d", &i);printf("%d\n", i);return 0;}我用sub_process.stdin.write("1\n");后&#xff0c;它不会立即输出&am…

LeetCode MySQL 1667. 修复表中的名字

文章目录1. 题目2. 解题1. 题目 表&#xff1a; Users ------------------------- | Column Name | Type | ------------------------- | user_id | int | | name | varchar | -------------------------user_id 是该表的主键。 该表包含用户的 I…