阿里巴巴2013笔试题
共两题:
1. 关于图片文件存储的一个开放性的题目,没什么好说的。
2. 有一颗树,每一个树节点存储着一个数字,现在想要找到两个相同的'节点(这两个节点存储的数字及其所有子树均相等)。
以下是我答题时候的思路,欢迎大家讨论。
思路1:
1) 首先通过一个遍历(如前序遍历)得到一个数字序列,并对树中的叶子节点在这个序列中做标记(现在问题退化为在一个数字串中找出重复的字符串,且这些字符串应该是以标记的叶子节点结尾的)
2) 采用后缀树可以很方便的求得相同的数字串序列
3) 验证2)中得到的结果(应该是一个小结果集) 是否满足要求,验证的时间复杂度应该是比较小的
思路2:
1) 对树中的每一个节点设定一个权值,这个权值为其所有子节点的权值及其自身数字值之间的乘积(可能需要bignumber,或者考虑将这些数字进行移位异或)
2) 采用后序遍历,计算每一个节点的权值,并顺带记录其树深度。统计权值和深度均相同的节点
3) 验证2)中得到的结果是否满足要求,验证的时间复杂度应该是比较小的
版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。
本文地址:https://www.gunzhua.com/jiuye/bishi/77486.html