mergesort类似算法题 不让看数组的值
假设给你一个实数数组,不能直接通过A[i]的方式获取数组里面数的值。
再假设可以调用一个函数Q() 接收一个数组然后可以告诉你这个数组里面有多少非重复的实数。e.g. T = {1,2,2} Q(T) = 2
问题:如何用O(nlogn)次调用Q()函数来找到这个数组中全部的重复数,并且把数组按照值分类,相同的值放在一起,不同的不放在一起
有大佬愿意解答一下吗。很多人一看就是经典的mergesort类似的题目。但是鉴于无法直接查看数的值,目前只找到了O(n^2logn)的方法,也就是总共有logn层递归,每层递归用了O(n^2)来找到重复的数。感谢!