武汉笔试之旅

参加武汉腾讯笔试,吓尿了,人真心好多,身边的竞争对手差不多都是武大,武理工,中南、中科等等硕士,哎,又感叹一句如果我简历上的
学历不是因为一不小心写成硕士,腾讯还会给我机会么。。。试题的好多题目很杂,有近一半数据结构、语言、算法题目,其他的都是各科的
基础题,因为也是acm渣的出身,多少还是会一些。。。大公司笔试应该来说特别重视基础和算法类的题目。
有道这样的题目升序的数组 a[n],向左移动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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值