免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3562 | 回复: 2
打印 上一主题 下一主题

一个google intern的面试题 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2006-12-14 10:47 |显示全部楼层
我比较笨...只找到了o(n^2)的办法...

建立2颗 AVL 树. 一颗是这个整数集合的, 一棵是2个数的乘积. 计算时候遇到ai == 1 || aj == 1 || ai == aj就不存储乘积了.
建立之后, o(1) 时间取得两颗树的最大值进行比较, 相等时候得出要求的 ak....

论坛徽章:
0
2 [报告]
发表于 2006-12-15 12:13 |显示全部楼层
原帖由 ArXoR 于 2006-12-15 11:50 发表


基于二叉搜索树的操作复杂度都是O(logn)的,怎么在O(1)内完成?
难道可以O(n)建一棵树,然后O(n)完成最大值的输出?
这样我们就可以找到一个基于比较的排序算法复杂度是O(n)了,这是不可能的,因为其下界已 ...



确实是我说错了, 我实际是想用 heap (抱歉我记成AVL....了). 这样我能保证取最值是O(1).

论坛徽章:
0
3 [报告]
发表于 2006-12-15 12:18 |显示全部楼层
原帖由 ArXoR 于 2006-12-15 12:15 发表


。。。还是不行,取完最值还得维护堆性质。。。还要O(logn)...^_^


恩, heap..看过一次, 现在已经忘记差不多了...名字都记不住了....刚才想了至少半个小时才....太丢人了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP