2015年秋季腾讯校园招聘开发岗笔试题(四道大题)

1.      在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码( Gray Code )。请编写一个函数,使用递归方法生成 N 位的格雷码,并且保证这个函数的健壮性。

 
2. 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案。




3. 如图所示,系统中有三个进程 Producer Transmitter Consumer Producer Transmitter 共用缓冲区 ProduceBuf Consumer Transmitter 共用缓冲区 ConsumeBuf

 

Producer 进程负责不断地将输入信息送入 ProduceBuf Transmitter 进程负责从 ProduceBuf 中取出信息进行处理,并将处理结果送到 ConsumeBuf Consumer 进程负责从 ConsumeBuf 中读取结果并输出。

 

假设 ProduceBuf 中最多可放 12 个信息,现已放入了 3 个信息; ConSumeBuf 最多可放 6 个信息。试写出正确实现进程 Producer,Transmitter Consumer 的同步与互斥的算法

 

(要求:用类 C 语言描述,条理清楚,注释恰当;)



4. 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。
全部评论
报的前端,有点虐
点赞 回复 分享
发布于 2015-09-07 11:12
第一道大题解答:如下图所示
点赞 回复 分享
发布于 2015-09-07 10:05
最后一题参考编程之美上的“水王”
点赞 回复 分享
发布于 2015-09-07 20:13
package com.mbc.text; public class Gery { public static String[] gery(int m) { String [] gery=new String [(int)Math.pow(2, m)]; if(m==1) { gery[0]="0"; gery[1]="1"; return gery; } String [] last=gery(m-1); for(int i=0;i<last.length;i++) { gery[i]="0"+last[i]; gery[gery.length-1-i]="1"+last[i]; } return  gery; } public static void main(String[] args) { int n=4; String[] res=gery(n); for(int i=0;i<res.length;i++) {             System.out.println(res[i]); }   } }
点赞 回复 分享
发布于 2015-09-07 19:01
这速度够快啊
点赞 回复 分享
发布于 2015-09-07 08:29
老哥,现在还在腾讯吗?
点赞 回复 分享
发布于 2022-08-12 18:10
第二题 #include <iostream> #include <vector> #include <string> using namespace std; void test(int a, int e, int f) { int b,c,d,g,h; b=13-a; if(b<0 || b>100) return; h=5-e; if(h<0 || h>100) return; g=4+h-f; if(g<0 || g>100) return; c=(4-a)*f; if(c<0 || c>100) return; if(e!=0) { if((c-4)%e != 0) return; d=(c-4)/e; if((b-d*g) == 4) { cout << a <<" "<< b <<" "<< c <<" "<< d <<" "<< e <<" "<< f <<" "<< g <<" "<< h <<" "<<endl; } } else { if(c == 4) { for(d=0;d<=100;d++) { if((b-d*g) == 4) { cout << a <<" "<< b <<" "<< c <<" "<< d <<" "<< e <<" "<< f <<" "<< g <<" "<< h <<" "<<endl; } } } } } void func() { for(int a=0;a<=5;a++) for(int e=0;e<=4;e++) for(int f=1;f<=9;f++) { test(a,e,f); } } void main (){ func(); }
点赞 回复 分享
发布于 2015-09-07 20:41
public class 数组中超过一半的数 { public static int findMoreHalf(int []  A) { int count=1; int result=A[0]; for(int i=0;i<A.length;i++) {     if(count==0)     {          result=A[i];     count=1;     }     if(result==A[i])     {     count++;          }     else     {     count--;               } }  return result; } public static void main(String[] args) {      int []  A={1,2,3,4,5,5,5,5,5,5,5,7,7,7,7,7,7,7,7,7,7,7};     System.out.print(findMoreHalf(A));              } }
点赞 回复 分享
发布于 2015-09-07 15:21
第四道大题是编程之美上的寻找水王那题,上来就20几行代码先把这道题解决了
点赞 回复 分享
发布于 2015-09-07 14:35
http://blog.csdn.net/l19920622/article/details/48261261
点赞 回复 分享
发布于 2015-09-07 10:38
赞~~ 互联网速度。。
点赞 回复 分享
发布于 2015-09-07 09:40
速度真快!
点赞 回复 分享
发布于 2015-09-07 08:35

相关推荐

牛客51274894...:照片认真的吗,找个专门拍证件照的几十块钱整端正点吧,要不就别加照片
点赞 评论 收藏
分享
02-04 17:01
南昌大学 Java
牛客96763241...:拿插件直接投就完了,这玩意看运气的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
25023次浏览 493人参与
# 中国电信笔试 #
31125次浏览 283人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14202次浏览 209人参与
# 你的实习产出是真实的还是包装的? #
18885次浏览 330人参与
# 如果秋招能重来,我会____ #
96712次浏览 500人参与
# 春招至今,你的战绩如何? #
60246次浏览 547人参与
# 厦门银行科技岗值不值得投 #
7520次浏览 186人参与
# i人适合做什么工作 #
36936次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79532次浏览 219人参与
# 哪些公司真双非友好? #
69228次浏览 287人参与
# 金三银四,你的春招进行到哪个阶段了? #
21575次浏览 277人参与
# 找AI工作可以去哪些公司? #
7754次浏览 189人参与
# 从事AI岗需要掌握哪些技术栈? #
7768次浏览 252人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339975次浏览 2165人参与
# 面试尴尬现场 #
220783次浏览 861人参与
# 五一之后,实习真的很难找吗? #
102811次浏览 584人参与
# 你做过最难的笔试是哪家公司 #
30395次浏览 193人参与
# 你小时候最想从事什么职业 #
159845次浏览 2072人参与
# 应届生第一份工资要多少合适 #
20491次浏览 84人参与
# 阿里笔试 #
176558次浏览 1302人参与
# 一张图晒出你司的标语 #
3846次浏览 72人参与
# 面试被问期望薪资时该如何回答 #
382478次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务