【每日算法Day 97】经典面试题:求两个数组最小差

简介: 给定两个整数数组 a 和 b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。

题目链接


LeetCode 面试题 16.06. 最小差[1]

题目描述


给定两个整数数组 ab,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。

说明:

  • 1 <= a.length, b.length <= 100000
  • -2147483648 <= a[i], b[i] <= 2147483647
  • 正确结果在区间 [-2147483648, 2147483647]

示例1

输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8}输出:3,即数值对(11, 8)

题解



image.png

代码


c++

classSolution {
public:  
intsmallestDifference(vector<int>&a, vector<int>&b) {  
sort(a.begin(), a.end());   
sort(b.begin(), b.end());   
intn=a.size(), m=b.size();   
inti=0, j=0;     
longres=INT_MAX;    
while (i<n&&j<m) {   
res=min(res, abs(long(a[i])-long(b[j])
                              )
                     );    
if (a[i] >b[j]) ++j;   
else++i;      
        }       
returnres;  
    }
};

python

classSolution:   
defsmallestDifference(self, a: List[int], b: List[int]) ->int:
a.sort()    
b.sort()   
n, m=len(a), len(b)   
i, j, res=0, 0, 2147483647whilei<nandj<m:     
res=min(res, abs(a[i]-b[j]))  
ifa[i] >b[j]: j+=1else: i+=1returnres

参考资料

[1]

LeetCode 面试题 16.06. 最小差: https://leetcode-cn.com/problems/smallest-difference-lcci/

image.png

作者简介:godweiyang知乎同名华东师范大学计算机系硕士在读,方向自然语言处理与深度学习喜欢与人分享技术与知识,期待与你的进一步交流~


相关文章
|
编解码 C++ Windows
QT软件开发: QProcess启动进程完成交互并获取输出
QT软件开发: QProcess启动进程完成交互并获取输出
3242 0
QT软件开发: QProcess启动进程完成交互并获取输出
|
Java Spring
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
2162 0
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
|
Linux 缓存
CENTOS7更换YUM源为163源
访问地址为:http://mirrors.163.com/.help/centos.html 首先备份源: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 备份之前的源BASE,进入对应目录。
5028 0
|
自然语言处理
|
存储 数据采集 缓存
【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)
【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)
1679 0
|
人工智能 自然语言处理
使用Kimi+Markmap总结文件内容生成思维导图原创
一份文件内容太长,完整阅读下来太费时间,但如果使用AI进行内容提炼,再总结成思维导图,方便快速看到这份文件的核心内容和主题结构,就会极大地节约时间,目前就可以使用Kimi+Markmap这两个工具,帮我们把ppt、word、pdf等文件内容快速总结成思维导图。
2974 8
使用Kimi+Markmap总结文件内容生成思维导图原创
基因组组装:Hifiasm 使用教程
基因组组装:Hifiasm 使用教程
1492 1
|
消息中间件 Java 中间件
RocketMQ延迟消息的代码实战及原理分析
在RocketMQ中,支持延迟消息,但是不支持任意时间精度的延迟消息,只支持特定级别的延迟消息。如果要支持任意时间精度,不能避免在Broker层面做消息排序,再涉及到持久化的考量,那么消息排序就不可避免产生巨大的性能开销。
4071 0
|
程序员 编译器 API
没有永远的王者…Zig替代C,将成定局!
没有永远的王者…Zig替代C,将成定局!
599 0
|
存储 SQL 分布式计算
性能优化:Spark SQL中的谓词下推和列式存储
性能优化:Spark SQL中的谓词下推和列式存储