LeetCode.1200-最小绝对值差(Minimum Absolute Difference)

CLion for Mac(m1)配置GCC编译器 条件:电脑已经下载过XCode 一. 下载HomeBrew homebrew是一款macos,linux下的包管理工具,我们需要使用他来下载GCC 下载方法: 1.打开终端(terminal) 2.输入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ps.有可能会遇到的问题 我当初下载挂了VPN,优快云上还有很多解决问题的方法,可以将错误信 阅读详情

这是小川的第418次更新,第451篇原创

看题和准备

今天介绍的是LeetCode算法题中Easy级别的第268题(顺位题号是1200)。给定一个由不同的整数组成的数组arr,找到所有对元素,其中任意两个元素的绝对差值都最小。

以升序返回关于配对的列表(相对于配对),每对[a,b]紧随其后:

  • a,b来自arr
  • a < b
  • b-a等于arr中任何两个元素的最小绝对差

例如:

输入:arr = [4,2,1,3]
输出:[[1,2],[2,3],[3,4]]
说明:最小绝对差为1。以升序列出所有差等于1的对。

输入:arr = [1,3,6,10,15]
输出:[[1,3]]

输入:arr = [3,8,-10,23,19,-4,-14,27]
输出:[[-14,-10],[19,23],[23,27]]

限制条件:

  • 2 <= arr.length <= 10^5
  • -10^6 <= arr[i] <= 10^6

第一种解法

直接翻译题目即可,分两步走,第一,找到数组arr中的最小绝对差值,通过排序来完成,借助Arrays的sort方法实现,因为绝对值差最小的两个数肯定是相邻越近越小。第二,再次遍历arr数组,将绝对值差等于最小绝对值差的两个元素添加到结果list中去。

public List<List<Integer>> minimumAbsDifference(int[] arr) {
    Arrays.sort(arr);
	int min = Integer.MAX_VALUE, len = arr.length;
	for (int i=1; i<len; i++) {
		min = Math.min(min, arr[i]-arr[i-1]);
	}
	List<List<Integer>> result = new ArrayList<List<Integer>>();
	for (int i=1; i<len; i++) {
		if (arr[i]-arr[i-1] == min) {
			List<Integer> list = new ArrayList<Integer>();
			list.add(arr[i-1]);
			list.add(arr[i]);
			result.add(list);
		}
	}
	return result;
}

第二种解法

针对第一种解法,我们还可以简化下,只使用一个循环。在循环里判断最小绝对值差,如果当前两元素的绝对值小于最小绝对值差,则更新最小绝对值差的值,同时将结果list清空,这里清空list有两种办法,一是重新创建对象,二是使用clear方法,推荐第一种重新创建对象的做法,将两元素存入结果list中。

public List<List<Integer>> minimumAbsDifference2(int[] arr) {
    Arrays.sort(arr);Arrays.sort(arr);
	int min = Integer.MAX_VALUE, len = arr.length;
	List<List<Integer>> result = new ArrayList<List<Integer>>();
	for (int i=1; i<len; i++) {
		if (arr[i] - arr[i-1] <= min) {
			if (arr[i] - arr[i-1] < min) {
				min = arr[i] - arr[i-1];
				result = new ArrayList<List<Integer>>();
			}
			result.add(Arrays.asList(arr[i-1], arr[i]));
		}
	}
	return result;
}

小结

算法专题目前已更新LeetCode算法题文章274+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、在看就是对我最大的回报和支持!

移动端实战指南:深入理解 & 接入 IAB OMSDK OMSDK(OpenMeasurementSDK)是IABTechLab推出的标准化测量工具,用于统一移动端/原生App广告的可见性和验证流程。其核心包括Native库(采集设备数据)和OMID JavaScript层(实现通信),通过标准化接口让开发者只需接入一套SDK即可兼容多个测量厂商,减少冲突和性能损耗。v1.4版本强化了对CTV和原生App场景的支持,而v1.5新增了画中画检测等功能。集成流程需通过IAB技术实验室注册下载,并遵循严格的命名空间规则。测试阶段需嵌入验证脚本并通过指定工具验证 阅读详情

相关推荐

Altium Designer差分走线实战:从规则设置到阻抗匹配的完整流程

本文详细讲解了在Altium Designer中进行差分走线的完整实战流程,涵盖从原理图定义差分对、PCB布局管理、关键设计规则设置,到利用阻抗计算工具确定线宽与间距,以及布线技巧与等长处理等核心步骤。文章旨在帮助工程师掌握高速PCB设计中差分信号传输的关键技术,确保信号完整性并实现精确的阻抗匹配。

weixin_29163857的博客 254

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

题目链接 LeetCode 面试题 16.06. 最小差[1] 题目描述 给定两个整数数组 a 和 b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。 说明: 1 <= a.leng...

算法码上来 2034

近几年预训练语音大模型汇总

语音大模型研究近年来取得显著进展,主要包括wav2vec 2.0(2020)、HuBERT(2021)、WavLM(2022)、Data2Vec(2022)、Whisper(2023)等代表性工作。这些模型采用自监督学习框架,通过掩码预测、对比学习等策略在大规模语音数据上预训练,可有效应用于语音识别、情感分析、疾病检测等下游任务。其中wav2vec 2.0首次将对比学习引入语音领域,Whisper通过68万小时弱监督数据实现强大的跨语言能力。这些突破为低资源语音任务提供了通用特征提取方案,推动了医疗语音分析

victory0431的博客 1776

Leetcode--最小差

给定两个整数数组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] <= 21...

半途行走的博客 649

载波同步技术(一):BPSK的Costas Loop 载波同步

Author:McCrocodile 2010/11/04          载波的提取在相干解调中往往比较重要,根据信号中是否包含载频分量,载波同步一般也可以分为两种方法。包含载频分量的可以采用窄带滤波或者基本的锁相环环路来实现,不包含的则比较麻烦需要采用特殊的环路实现载波的同步。这里介绍的BPSK的载波恢复就属于后面一种。 对于不包含载频分量的信号载波同步一般有:同相-正交环(就是常说的Costas环)、判决反馈环(几乎可以适用所有调制方式)、同相-正交环衍生环(QPSK松尾环、N相同相-正交环)。

McCrocodile Blog 1万+

程序进入hardfault之后查找原因的方法

如果在MCU运行程序的时候,进入了hardfault,该怎么办?

smart_boy__的博客 760

1200. 最小绝对差.Minimum Absolute Difference

1200. 最小绝对差.Minimum Absolute Difference

JalanChao的博客 535

WIFI中CSI的读取

学习目标: 目前正在做基于WIFI的无设备定位,准备使用信道状态信息(CSI),学习一下。 目前采集数据环境已经搭建好,准备研究信号的预处理。 学习内容: 1、 信号的读取——read_bf_file函数的研究 2、 3、 4、 1. read_bf_file详解: %READ_BF_FILE Reads in a file of beamforming feedback logs. % This version uses the *C* version of read_bfee, ...

sz3076799的博客 8891

【算法】在整数数组求中出两两之差绝对值最小的值

这是一道微软的面试题,原题是这样的: 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。(复杂度N^2则不得分) 解法一:看到这个这个题目第一个念头就是暴力解法,通过两个for循环两两相减,记录最小值即可: int func(int* arr,int n) { int nmin = abs(arr[0]-arr[1]); for(int i =

Ango_的专栏 3560

模拟量传输4-20ma电流

大家可能会非常熟悉RS232,RS485,CAN等工业上常用的总线,他们都是传输数字信号的方式。那么,我们用什么方式来传输模拟信号呢?工业上普遍需要测量各类非电物理量,例如温度、压力、速度、角度等,这些都需要转换成模拟量电信号才能传输到几百米外的控制室或显示设备上。工业上最广泛采用的是用4~20mA电流来传输模拟量。 采用电流信号的原因是不容易受干扰,因为工业现场的噪声电压的幅度可能达到数V,但是噪声的功率很弱,所以噪声电流通常小于nA级别,因此给4-20mA传输带来的误差非常小;电流源内阻趋于无穷.

tangdongming的博客 1万+

AI漫剧全套万能提示词合集

今天给大家整理一套已经跑通爆款漫剧的万能提示词库!覆盖:豆包剧本人设词 + 分镜生成词 + 即梦绘图词 + 动态优化词 + 防翻车固定词直接复制粘贴,新手也能做出稳定、高清、统一、有质感的AI漫剧!你是资深短视频漫剧编剧,擅长制作60秒竖屏爆款AI漫剧,请为我创作一集完整漫剧内容。要求:开头3秒高能抓眼,中段有冲突转折,结尾留强悬念钩子,节奏紧凑、适合短视频流量。首先生成固定统一人物人设:包含脸型、五官、发色、发型、穿搭、身材、气质、画风、光影细节,要求足够精细,保证全程角色不变脸。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1858

1906. 查询差绝对值的最小值-动态规划算法

给你一个整数数组 nums 和查询数组 queries ,其中 queries[i] = [li, ri]。ri] 中 差绝对值的最小值 ,子数组 nums[li…= a[j] 的 |a[i] - a[j]| 的 最小值。输入:nums = [4,5,2,2,7,10], queries = [[2,3],[0,2],[0,5],[3,5]]输入:nums = [1,3,4,8], queries = [[0,1],[1,2],[2,3],[0,3]]输出:[-1,1,1,3]输出:[2,1,4,1]...

weixin_43327597的博客 560

max96712 GMSL1/2 相机调试记录

在部分相机调试中,使用i2cdetect 无法进行i2c扫描,一旦进行扫描会影响整个I2C总线通信异常,但是其能使用i2ctranfer命令进行读写操作,并不影响相机的开发调试。max96712的流路径分布如下图所示,需要通过对max96712进行相关配置,对GMSL-A/B/C/D进入的数据规划pipe。确认VID_PKL_DET 状态。max96712相关状态确认。MAX97612 状态确认。Linux 状态确认。

navy2015_163的博客 1101

[leetcode] 1200. Minimum Absolute Difference

Description Given an array of distinct integers arr, find all pairs of elements with the minimum absolute difference of any two elements. Return a list of pairs in ascending order(with respect to pairs), each pair [a, b] follows a, b are from arr a < b

Learning from the mistakes 228

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LeetCode: 503.Minimum Absolute Difference in BST

LeetCode: 503.Minimum Absolute Difference in BST

qq_16318319的博客 751

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

leetcode 1200. Minimum Absolute Difference

2019.10.18 把数组中绝对值最小的每对儿数据找出来。 最简单的思路是排序,排序后找到最小值,再遍历提取绝对值为最小值的数据。 感觉有点笨的方法,应该会有更好的方法。 https://github.com/cathyxingchang/leetcode/tree/master/code ...

u013011267的专栏 198

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python-数组-Smallest Difference问题,求两个数组中数字差的绝对值最小的两个数的组合

Smallest Difference 最小偏差,输入两个array,对比其中的元素,找到两个绝对值最接近于0的元素,并返回。 样例输入: [-1, 5, 10, 20, 28, 3] [26, 134, 135, 15, 17] 样例输出: [28,26] Solution 1: 使用两个for循环,将两个数组中的元素两两比较,采用贪心策略,差最小的就是需要返回的结果。 arr_1 = [-1, 5, 10, 20, 28, 3] arr_2 = [26, 134, 135, 15, 17] de

weixin_39257042的博客 2644

leetcode 1200. Minimum Absolute Difference 解法 python

一.问题描述 Given anarrayofdistinctintegersarr, find all pairs of elements with the minimum absolute difference of any two elements. Return a list of pairs in ascending order(with respect to pairs)...

CSerwangjun的博客 898

力扣周赛 5197. 最小绝对差(java)

题目 给你个整数数组 arr,其中每个元素都 不相同。 请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。 示例 1: 输入:arr = [4,2,1,3] 输出:[[1,2],[2,3],[3,4]] 示例 2: 输入:arr = [1,3,6,10,15] 输出:[[1,3]] 示例 3: 输入:arr = [3,8,-10,23,19,-4,-14,27] 输出:[[-14,-1...

菜不是原罪 624

最小绝对差

最小绝对差 给你个整数数组 arr,其中每个元素都 不相同。 请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。

xie_bro的博客 357

LeetCode - 1200- 最小绝对差

给你个整数数组arr,其中每个元素都不相同。请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。 示例: 输入:arr = [4,2,1,3] 输出:[[1,2],[2,3],[3,4]] 输入:arr = [1,3,6,10,15] 输出:[[1,3]] 解决方法: 循环遍历数组,找到 最小值,然后再循环,返回找到差值与最小值相同的两个数。 问题: 1、怎么只返回两个数? 首先想到的是用list.add()去添加与min相等的两个数,但是最后在集合...

毛毛毛小新的博客 645

每日一题48——最小绝对差

给你个整数数组 arr,其中每个元素都 不相同。 请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。 每对元素对 [a,b] 如下: a , b 均为数组 arr 中的元素 a < b b - a 等于 arr 中任意两个元素的最小绝对差 示例 1: 输入:arr = [4,2,1,3] 输出:[[1,2],[2,3],[3,4]] 示例 2: 输入:arr = [1,3,6,10,15] 输出:[[1,3]] 示例 3:

weixin_46653651的博客 386

LeetCode # 530 二叉查找树中查找两个节点之差的最小绝对值

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 解题思路1: 这道题和上一道求和的题十分相似,不同的是差的绝对值最小值只能出现在相邻的两个节点之间,因此可以与上次一样,手下中序遍历树得到一个有序的链表,然后遍历链表,找出差的绝对值最小值。 class Solution { L...

婷子的博客 1235

LeetCode——1200.最小绝对差

leetcode最小绝对差

玄昌盛不会编程 314

【LeetCode】1200. Minimum Absolute Difference 解题报告 (C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法排序日期 题目地址:https://leetcode.com/problems/minimum-absolute-difference/ 题目描述 Given an array of distinct integers arr, find ...

负雪明烛 1333

1200 Minimum Absolute Difference

1 题目 Given anarrayofdistinctintegersarr, find all pairs of elements with the minimum absolute difference of any two elements. Return a list of pairs in ascending order(with respect to pairs), ...

weixin_39145266的博客 262
上一篇: Facebook程序员跳楼事件:技术路线会越走越窄吗?
下一篇: LeetCode.1207-唯一的元素出现次数(Unique Number of Occurrences)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值