腾讯今晚的满二叉树是啥意思,为啥样例最后输出是12。

逆序数用的树状数组做的,只有16种字符组合情况,应该算线性时间复杂度吧。#腾讯#
全部评论
不知有没有特殊情况没考虑到
点赞 回复 分享
发布于 2017-04-03 21:35
点赞 回复 分享
发布于 2017-04-03 21:23
public static int get(int h, int a, int b, int c) { int init = (int) Math.pow(2, h - 1); int val = init / 2; while (true) { if (init > a && init > b && init > c) init -= val; else if (init < a && init < b && init < c) init += val; else return init; val /= 2; } }
点赞 回复 分享
发布于 2017-04-03 21:43
我觉得是1
点赞 回复 分享
发布于 2017-04-03 21:12
我也觉得是1
点赞 回复 分享
发布于 2017-04-03 21:13
排序的满二叉树.也就是满二叉搜索树.
点赞 回复 分享
发布于 2017-04-03 21:13
出这个题目,是不是想告诉我们,对不起腾讯招满了,给点题目让你继续努力
点赞 回复 分享
发布于 2017-04-03 21:13
二叉排序树啊。
点赞 回复 分享
发布于 2017-04-03 21:14
我用的二分做的。
点赞 回复 分享
发布于 2017-04-03 21:14
我也觉得是1
点赞 回复 分享
发布于 2017-04-03 21:15
不知道是没读懂意思还是样例错误,不知道为啥输出12。也不多来几组样例,腾讯也真是为我们节约流量。
点赞 回复 分享
发布于 2017-04-03 21:15
一开始我也觉得好奇怪,但是再看清楚一点,发现是最小子树的根
点赞 回复 分享
发布于 2017-04-03 21:15
我理解的第一题是求三个节点的最近公共祖先,我的代码样例输出是1,不懂12是什么意思,实在搞不懂正确题意是什么 逆序数那个我是DP的dp[i][3]表示第i个字符前字符j出现的次数然后扫一遍更新
点赞 回复 分享
发布于 2017-04-03 21:16
我也觉得是1,我在监控下面爆粗了,不会被听到吧
点赞 回复 分享
发布于 2017-04-03 21:17
题目写了二叉排序树,我瞎了……审题都审错了
点赞 回复 分享
发布于 2017-04-03 21:19
            8      4           12   2    5   10     13 1 3 6 7 9 11 14 15 是12吧
点赞 回复 分享
发布于 2017-04-03 21:20
二叉排序树。以4为例,根节点为8,把树画出来就看的出来了
点赞 回复 分享
发布于 2017-04-03 21:20
二叉排序树就是12啊,楼上都怎么审题的
点赞 回复 分享
发布于 2017-04-03 21:20
原来二叉排序树是 Binary search Tree。整个过程都在搞翻译,什么是hash桶,原来是Hash bucket
点赞 回复 分享
发布于 2017-04-03 21:30
理解错了,看题目好久,考完做了下 #include<iostream> #include<map> #include<vector> #include<algorithm> using namespace std; int data[10000]; void buildtree(int n) { int zhi = n - 1; int index = 1; for (int i = 0; i < zhi; i++) { index = index * 2; } int end = index * 2 - 1; for (int i = index; i <= end; i++) { data[i] = 2 * (i - index) + 1; } for (int i = index - 1; i >= 1; i--) data[i] = (data[i * 2] + data[i * 2 + 1]) / 2;   } void findroot(int m, int p, int q) { int index1 = 0; int index2 = 0; int index3 = 0; for (int i = 1; i < 10000; i++) { if (data[i] == m) index1 = i; if (data[i] == p) index2 = i; if (data[i] == q) index3 = i; } while (index1 != index2) { if (index1 > index2) index1 = index1/ 2; else if (index2 > index1) index2 = index2 / 2; }   while (index3 != index2) { if (index3 > index2) index3= index3 / 2; else if (index2 > index3) index2 = index2 / 2; }   cout << data[index3]<< endl; } int main() { int n, m, p, q; while (cin >> n >> m >> p >> q) { buildtree(n); findroot(m, p, q); } }
点赞 回复 分享
发布于 2017-04-03 21:42

相关推荐

兄弟们,绩效自评一定得给自己打A啊!千万别谦虚给低分,不然领导正愁给谁高分,你这不就“主动请缨”了嘛,而且多数领导不会给你更高分。我几年前试用期绩效自评打了B,领导就给了同等级,还好是试用期。真别等领导主动给高评价!
准备进厂的劳伦斯很迷人:小学时候有个册子 自评 小组 老师 我谦虚打了个b 小组别人给我打b 老师来句我觉得能给他打a 但是小组长说他自评是b怎么能打高呢 那时候我才明白的道理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务