大数据面试题求解:给定n个实数 ,求着n个实数在实轴上向量2个数之间的最大差值,要求线性的时间算法(最大间隙问题)
最先想到的方法就是先对这n个数据进行排序,然后一遍扫描即可确定相邻的最大间隙。但该方法不能满足线性时间的要求。故采取如下方法:找到n个数据中最大和最小数据max和min。用n-2个点等分区间[min,max],即将[min,max]等分为n-1个区间(前闭后开区间),将这些区间看作桶,编号为i,且桶i的上界和桶i+1的下届相同,即每个桶的大小相同。实际上,这些桶的边界构成了一个等差数列(首项为mi