有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数
如果没有空间复杂度的限制啊,可以借助于桶排序的思想。
数组为a[]
遍历得到最大max,遍历得到最小min。
位图长度为abs(max)+abs(min),即为byte b[]
遍历a,遍历到a[i],则将b[a[i]-min]置为1;
然后遍历b,比较相邻两个为1的下标差值。
复杂度为O(abs(max)+abs(min)),汗
ps:
直接用桶排序就可以了~~
考虑到可能有重复数字的情况,可以用两个bit位表示
寻找最小两数之差
本文探讨了如何在一个整数数组中找到两两之差绝对值最小的数对,通过位图思想实现优化,适用于没有空间复杂度限制的场景。
2899

被折叠的 条评论
为什么被折叠?



