腾讯笔试,大题讨论下

大题只会两个。
分享下,仅供参考,不保证正确性。。

满排序二叉树:
#include<cstdio>
#include<cmath>
using namespace std;
int judge(int r,int a,int b,int c){
if(a >= r && b >= r && c >= r) return 1;
if(a <= r && b <= r && c <= r) return -1;
return 0;
}
int main()
{
int k,a,b,c;
scanf("%d%d%d%d",&k,&a,&b,&c);
int root = pow(2,k-1);
int flag ;
int ans = -1;
while((flag=judge(root,a,b,c)) != 0){
k--;
if(flag == 1){   //往右走
if(a==root || b==root || c==root){
ans = root;
break;
}
root += pow(2,k-1);
}
else {   //往左走
if(a==root || b==root || c==root){
ans = root;
break;
}
root -= pow(2,k-1);
}
}
if(flag == 0) ans = root;
printf("%d\n",root);
return 0;
}

逆序数:



其他两题不会,求大佬们讲解下
全部评论
最后一题用二分法求出每个节点的路径,然后一起从头扫描,找到最后一个相同节点,就是所求
点赞 回复 分享
发布于 2017-04-03 21:28
最后一个,输出的第一个八位是16,32...的16进制,接下来的都是字符对应的16进制。
点赞 回复 分享
发布于 2017-04-03 21:16
逆序数可以用动态规划:
点赞 回复 分享
发布于 2017-04-04 01:08
第一个编程题好简单,亏我想了好久
点赞 回复 分享
发布于 2017-04-03 22:20
楼主满排序二叉树的思路是什么?
点赞 回复 分享
发布于 2017-04-03 21:39
满排序二叉树,不保证一定对。。
点赞 回复 分享
发布于 2017-04-03 21:32
没想到,用的归并。。。。,最后一个编程没看懂什么意思
点赞 回复 分享
发布于 2017-04-03 21:14
逆序对的倒着处理就不用扫描两次
点赞 回复 分享
发布于 2017-04-03 21:07

相关推荐

牛客51274894...:照片认真的吗,找个专门拍证件照的几十块钱整端正点吧,要不就别加照片
点赞 评论 收藏
分享
书海为家:实习是成为大厂正式员工很好的敲门砖,看您的简历中有一段实习经历,挺好的。我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己实习时做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务