免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: snowboy9859
打印 上一主题 下一主题

[算法] 淘宝2012校招题目,高手们请进 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2011-09-22 17:14 |只看该作者
你这就是抬杠了。。。。。。。那我同意你的是最好的, 你的不会陷入2亿个循环?? 看这个
        o ...
zylthinking 发表于 2011-09-22 17:10



    呵呵,这个就是我说的(2)啊。 这个种情况没有办法的。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
52 [报告]
发表于 2011-09-22 17:16 |只看该作者
呵呵,这个就是我说的(2)啊。 这个种情况没有办法的。
fanronghua 发表于 2011-09-22 17:14


既然这样, 去掉这类专门为抬杠弄出的情景, 再比较你的算法和我最后贴出的算法, 看看你的有什么优势?

论坛徽章:
0
53 [报告]
发表于 2011-09-22 17:16 |只看该作者
去看微软面试宝典,上面有的

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
54 [报告]
发表于 2011-09-22 17:19 |只看该作者
去看微软面试宝典,上面有的
churchmice 发表于 2011-09-22 17:16


且看17楼     

论坛徽章:
0
55 [报告]
发表于 2011-09-22 19:32 |只看该作者
且看17楼
zylthinking 发表于 2011-09-22 17:19



    给力,鱼饵我已经给了,高手们给条鱼,这几天准备面试,无心一一回复,这位大哥劳烦你关顾下这个帖子了,多谢

论坛徽章:
0
56 [报告]
发表于 2011-09-22 20:05 |只看该作者
楼主成都的?

论坛徽章:
0
57 [报告]
发表于 2011-09-23 14:55 |只看该作者
回复 57# scutan


    武汉

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
58 [报告]
发表于 2011-09-23 15:30 |只看该作者
小弟有个问题没搞清楚,请教一下

小狗撒尿算法,该怎么模拟实现??是单线程回合制还是开双线程实现?

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
59 [报告]
发表于 2011-09-23 15:39 |只看该作者
小弟有个问题没搞清楚,请教一下

小狗撒尿算法,该怎么模拟实现??是单线程回合制还是开双线程实 ...
action08 发表于 2011-09-23 15:30


单线程回合制可以实现; 46楼是我自己琢磨的大概步骤

论坛徽章:
0
60 [报告]
发表于 2011-09-23 16:25 |只看该作者
本帖最后由 wingforce 于 2011-09-23 16:37 编辑

在“不对树的结构做任何假设的情况下”,所谓最差情况的2亿循环是根本没法避免的。
没有深度信息,或排序性,或平衡性,又或者类似线索树的复杂结构,这个问题最终会简化为

“求2个单向链表的交点”

- 这个也可以同时解决和解释前面有人说的,如果2个结点没有共同祖先,在这个模型下就是2条不相交的单向链表
- 这和树是2叉还是n叉都没有关系

而这个问题的时间复杂度无论如何不会低于O(n + m), n和m分别是2个单向链表到他们交点的距离,n + m最差情况就是树的结点总数。
每个结点上保存深度也好,小狗爬爬也好,或者是把其中一条路线存储起来查询也好,本质来说空间复杂度都是O(n),n是选取的那条路径的长度,最差情况就是树的结点总数。
每个结点保存深度和小狗爬都是额外信息保存在结点内部,其实依然额外消耗的空间

存储起来查询,要解决的问题是查询加速,无论hash还是什么树,都会很难做到O(1)时间获得查询结果。
各种查询树的查询复杂度都不能超过O(logn),这样算法的时间复杂度是O(n × logn)

hash看起来很美,理论上是O(1),实际上由于hash存在冲突的情况,比较难以分析。理想情况的总复杂度是O(n)。实践中,因为前面说的存在冲突情况,会大于O(n)。如果我没记错,为解决冲突,实际上会是n的一个大于1,小于2的幂次,大概这样O(1 ^ 1.0xxx)


所以,如果需要最理想的O(1)空间复杂度,以及和上面所有方法一样的O(n)时间复杂度
先计算2个结点的深度,再使用游标保存当前所指向的结点,才可以“不做任何假设”的,“最优”的空间和时间复杂度解决这个问题。
因为计算2个结点深度的时间复杂度依然是O(n+m),再根据深度求交点的步骤的复杂度也是O(n+m)
所有他们的和没有变,O(n+m)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP