摘要:
题目: 给定一个无序整型数组arr,找到数组中未出现的最小正整数。 例如: arr=[-1,2,3,4]。返回1。 arr=[1,2,3,4]。返回5。 要求时间复杂度为O(N),空间复杂度为O(1)。 解答: 在遍历arr之前先生成两个变量。变量l表示遍历到目前为止,数组arr已经包含的正整数范围是[1,l],所以在没有开始之前l=0,表示arr没有包含任何正整数。变量r表示遍历到目... 阅读全文
摘要:
题目: 给定一个整形数组arr,返回排序后的相邻两数的最大差值。 时间复杂度为O(N)。 解答: 如果用排序法实现,其时间复杂度为O(NlogN),而如果利用桶排序的思想(不是桶排序),可以做到O(N),额外空间复杂度为O(N)。遍历arr找到最大值max和最小值min。如果arr的长度为N,准备N+1个桶,把max单独放在第N+1个桶中,[min,max)范围上的数放在1~N号桶里,对于1~N号... 阅读全文