您的位置:首页 > 其它

武汉笔试之旅

2014-03-30 13:17 281 查看
参加武汉腾讯笔试,吓尿了,人真心好多,身边的竞争对手差不多都是武大,武理工,中南、中科等等硕士,哎,又感叹一句如果我简历上的
学历不是因为一不小心写成硕士,腾讯还会给我机会么。。。试题的好多题目很杂,有近一半数据结构、语言、算法题目,其他的都是各科的
基础题,因为也是acm渣的出身,多少还是会一些。。。大公司笔试应该来说特别重视基础和算法类的题目。
有道这样的题目升序的数组 a
,向左移动K位,比如说数组2、3、4、5、6、7向左移动2位得到4、5、6、7、2、3实现二分查找 x 填空

if(()or()) 查找右区间
else查找左区间

int mid = l + r >> 1;
if(()or()) query(a,mid,r,x)
else query(a,l,mid,x)

要求填写if(  )or(  )
解析:主要分三种情况:
第一种
建立模型 4、5、6、7、2、3
l        r
第二种
建立模型 4、5、6、7、2、3
l  r
第三种
建立模型 4、5、6、7、2、3
l        r
很显然第一、二中可以写在一个()中:if((r<(n-k+1)||l>(n-k))&& x>a[mid])
第三种需要分析a[l]与x的大小了,并且还有分析mid于(n-k)的大小,如果a[l]>x则符合要求:if( l<(n-k+1) && r>(n-k) && (n-k+1)>mid && a[l]>x )
所以答案应该是:if(((r<(n-k+1)||l>(n-k))&& x>a[mid]) or (l<(n-k+1) && r>(n-k) && (n-k+1)>mid && a[l]>x)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: