范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

程序员面试金典面试题16。06。最小差

  题目难度: 中等
  原题链接  [1]
  今天继续更新程序员面试金典系列, 大家在公众号   算法精选   里回复  面试金典   就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述
  给定两个整数数组 a 和 b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例:输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出:3,即数值对(11, 8) 提示:1 <= a.length, b.length <= 100000 -2147483648 <= a[i], b[i] <= 2147483647 正确结果在区间 [0, 2147483647] 内 题目思考针对数组 a 的每个数字, 如何快速找到数组 b 和它绝对值差最小的数字? 解决方案思路分析题目, 一个很容易想到的思路就是暴力法, 二重循环统计每组数字对的绝对值差, 然后取最小值 但这种方法效率很低, 复杂度达到了 O(N^2), 有没有更高效的方法呢? 我们可以换个角度, 尝试直接定位绝对值差最小的数字:  首先循环遍历数组 a 的每个数字 x 然后在数组 b 里查找最接近 x 的两个数字(一大一小), 它们和 x 的绝对值差一定是最小的两个 最后从所有这些绝对值差中取最小值, 即为最终结果 这里我们就可以使用二分查找的思路, 先对数组 b 排序, 然后查找它里面最接近且大于 x 的下标 j, 然后 j-1 下标一定是最接近且小于等于 x 的值, 只需统计这两个绝对值差即可 具体实现方面我们可以有以下三个优化:  首先可以将两个数组去重, 没有必要重复计算相同数字 其次可以比较去重后的长度, 然后选择排序较短的那个. 这样总体时间复杂度就是 O(SlogS+LlogS)=O(LlogS) (S 是较短数组的长度, L 是较长数组的长度), 而排序较长的数组的复杂度是 O(LlogL+SlogL)=O(LlogL), 效率稍微降低了一些 最后可以在绝对值差存在 0 的时候直接返回, 因为不可能有更小的 下面代码就对应了上面的整个过程, 且每一步有详细的注释, 方便大家理解 复杂度时间复杂度  O(LlogS)  : 参考上面的分析空间复杂度  O(L+S)  : 使用集合去重, 如果不使用该优化的话则是 O(1)代码class Solution:     def smallestDifference(self, a: List[int], b: List[int]) -> int:         # 排序后二分+三优化         # 优化1 - 去重         a = list(set(a))         b = list(set(b))         if len(a) < len(b):             # 优化2 - 排序较短的数组             return self.smallestDifference(b, a)         b.sort()         res = float("inf")         for x in a:             # 注意这里使用bisect, 这样查找到的j是首个大于x的下标, 只需要判断j-1和j即可             j = bisect.bisect(b, x)             for k in (j - 1, j):                 if 0 <= k < len(b):                     res = min(res, abs(x - b[k]))                     if res == 0:                         # 优化3 - 差为0时直接返回, 不可能有更小的差                         return res         return res 参考资料
  [1]
  原题链接: https://leetcode-cn.com/problems/smallest-difference-lcci/

把QQ动态表情移植到微信上?太魔性了不知道现在还有多少小伙伴会使用QQ呢?今天玩机哥在使用QQ时突发奇想,若是将QQ的动态表情移植到微信会不会更有趣呢?(获取素材方法往下翻)QQ表情玩机哥将数十款QQ表情进行了提取,从身价15万到身价15亿,胡玮炜只用了3年的时间,她是如何做到的2018年9月,曾今风光无限的ofo小黄车因为资金周转出现问题,导致亿万用户的押金无法退回。作为创始人的戴威,在短短几个月内,从亿万富翁变成老赖,还被法院限制消费,堪称年度最惨的富6个强大的的javascript工具库时间处理游戏引擎CSS动画等highlight。js官网httpshighlightjs。org让网页上的代码高亮美化的免费开源工具库,一行代码就能让我的网站支持代码高亮的工具库,也支持在Vue中使用,强烈推燃油车走到尽头了?我国宣布禁用时间,倒计时开始了燃油车从第1辆诞生开始,已经有了100多年的发展历史。许多人也表示燃油车的研发技术已经走到了终点很难再有突破性的进展,从各大车企开始纷纷向新能源汽车倾斜资源也可以看得出这点。我国有申通创始人25岁英年早逝,妻子改嫁司机,套现146亿后成功离场近些年来,我国的快递行业快速发展,到今年底,快递业务量已超千亿件,快递收入突破万亿元,稳居全球第一。每天有7亿多人次享受着快递服务,快递行业已经与我们的日常工作生活深度融合,四通一注意!电话卡开始二次实人认证运营商给我发了二次实人认证的信息,是诈骗短信吗?近日,有市民收到手机号需要二次实人认证的信息,这是咋回事儿?12月20日,大河报豫视频记者从河南省反电信网络诈骗中心了解到,该信息是12月末想换5G千元机,预算1500左右的话,推荐入手这四款时间过得很快,距离2021年结束还有不到半个月的时间了,虽然说逐渐来到年底了,但手机厂商们并没有停止步伐,本月发布的新机还是十分多,甚至比前几个月还多。由于明年的新款迭代旗舰已经陆诸神黄昏后,农业也许会是下一个风口互联网行业的诸神黄昏?裁员降薪破产转型,经历了一轮长达二十多年的红利期,中国的互联网行业大约是走到尽头了。互联网行业大概率不会面临教育房地产这样的打击,但是可以预见的是,这个行业将割韭菜的四款智商检测机,看看是不是你在用的?有些手机配置低价格高,但至少不拉胯,也可以接受,但是一些手机真的是实实在在的坑用户的手机,给人的感觉就是在割韭菜,所以买的时候尽量避开这些手机,小编今天给大家盘点几部智商检测机,看全球首个零碳码头诞生12月15日,随着两台由金风科技自主研发的GW1554。5MW风力发电机组在天津港第二集装箱码头成功并网发电,全球首个零碳码头诞生,标志着金风科技零碳解决方案在港口场景应用从图纸变三星为了特斯拉拼了将量产5款芯片优先供应特斯拉今年早些时候,业界传出特斯拉正在选择芯片供应商,并且倾向于台积电,但经过一段时间的接触,韩国三星最终甩开台积电拿下特斯拉的超级订单。最初特斯拉对外宣布,将与韩国三星联手,共同研发一
鸿蒙168版本,电池健康它来了最近更新到了鸿蒙2。0。0。168版本后,电池健康来了。准确的说是显示出来了。如果有用华为手机的朋友更新到168版本后。打开设置电池更多电池设置便可以看到电池最大容量。我看到很多人骁龙888旗舰降价1300元,120Hz2K曲面屏,4099就可入手虽然目前骁龙888Plus机型已经发布了不少,但骁龙888机型依然深受用户欢迎,骁龙888Plus依然采用5纳米工艺,性能提升并不是很大,骁龙888芯片已经性能过剩,完全可以满足日9月安卓新机全面盘点最低1799元即可入手早上好,马上就要到国庆假期了,不知道各位都定好回家的车票了吗?其实,国庆假期前夕是一年一度的换机热潮,毕竟适逢长假,谁不想手持一款潮流新机回家跟家人团聚呢?今天我就为各位用户总结了从AK47进化到了AK12?全面革新之作九州风神AK620上手评测前言九州风神,相信这个散热品牌熟悉DIY的小伙伴都应该知道。作为目前国内最大的电脑散热器研发和生产厂商,这个品牌散热器的销量相信也无需多言,我自己都先后购入不少。从反人类400(玄4档调温,一键速热,完美烧水壶值得拥有热水壶作为家庭必备的小家电之一,可谓家家都要用,每天都要用。但是传统的电热水壶存在不够智能的问题,日常生活中只能烧开水,正渴的时候水滚烫喝不了,等想起来喝了,它又放凉了,另外还有使乌镇之光超算中心近日落成超级计算机何以超级?央广网北京9月28日消息据中央广播电视总台中国之声新闻超链接报道,在世界互联网大会永久举办地桐乡乌镇,乌镇之光超算中心近日落成。作为浙江首个大型超算中心,乌镇之光从开工建设,到完成将再次改变世界的七大技术展望以前从来没有一个时代,技术进步在地球上引起如此迅速的发展。近年来,数字化和新技术已经从根本上改变了世界但仍然看不到尽头。相反,已经发生的事情激发了人们对在可预见的未来可能发生的事情每月交300元租金快递小哥有了10秒换电站来源北京日报快递小哥有了10秒换电站本报讯(记者陈强)大兴区林校路街道兴政中里社区有处平房院,好几位快递外卖小哥租住在这里。最近,街道在院里装上了换电站,小哥们每月交300元租金,装个系统教你安装全新Windows11全程展示,精彩无限跟我一起,穿越时间!Windows11是微软最新的操作系统,相信已经没有人不知道了,但是很多人还不知道如何安装Windows11,甚至不知道如何下载微软原版的安装文件,别急,如果你36个月流畅不卡顿OneUI3让三星GalaxyZFold35G久用如新近日,三星新一代折叠屏手机三星GalaxyZFold35G在国内正式亮相,该机不仅带来了沉浸式的影音娱乐体验和更高效的大屏生产力,其搭载的最新OneUI3系统中还引入了AI系统加速华硕无畏Pro14酷睿版笔记本评测2。8KOLED屏带来全新视觉体验与传统的LCD屏幕相比,OLED的每一个像素都可以单独发光,显示黑色时甚至可以完全关闭,不需要LCD那样的逆光系统,黑色时甚至可以完全关闭,所以能做到更高的亮度与对比度,暗色时能耗