mergesort类似算法题 不让看数组的值

aojiaoo 2020-06-10 03:05:26
假设给你一个实数数组,不能直接通过A[i]的方式获取数组里面数的值。
再假设可以调用一个函数Q() 接收一个数组然后可以告诉你这个数组里面有多少非重复的实数。e.g. T = {1,2,2} Q(T) = 2
问题:如何用O(nlogn)次调用Q()函数来找到这个数组中全部的重复数,并且把数组按照值分类,相同的值放在一起,不同的不放在一起

有大佬愿意解答一下吗。很多人一看就是经典的mergesort类似的题目。但是鉴于无法直接查看数的值,目前只找到了O(n^2logn)的方法,也就是总共有logn层递归,每层递归用了O(n^2)来找到重复的数。感谢!
...全文
52 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧