漫画算法:无序数组排序后的最大相邻差值

转载自 玻璃猫 程序员小灰

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

小灰一边回忆一边讲述起当时面试的情景......

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

题目:有一个无序整型数组,如何求出这个数组排序后的任意两个相邻元素的最大差值?要求时间和空间复杂度尽可能低。(例如:无序数组 2,3,1,4,6,排序后是1,2,3,4,6,最大差值是6-4=2)

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

该解法的时间复杂度为O(n+k),空间复杂度同样是O(n+k)。

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

例如给定无序数组 { 0, 6, 3, 16, 7, 10, 9, 11, 20, 18 },处理过程如下图:

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

该解法的时间复杂度为O(n),空间复杂度同样是O(n)。

漫画算法:无序数组排序后的最大相邻差值

十分钟后......

漫画算法:无序数组排序后的最大相邻差值

以上就是小灰面试的情况......

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值

漫画算法:无序数组排序后的最大相邻差值