欢迎来到010在线作文网!

企业笔试题目及答案(2)

试题 时间:2021-08-31 手机版

  腾讯笔试题:两个整数集合A和B,求其交集

  两个整数集合A和B,求其交集。

  1. 读取整数集合A中的整数,将读到的整数插入到map中,并将对应的值设为1。

  2. 读取整数集合B中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。

  通过更改map中的值,避免了将同样的值输出两次。

  腾讯笔试题:找出1到10w中没有出现的两个数字

  有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?

  申请10w个bit的空间,每个bit代表一个数字是否出现过。

  开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。

  然后依次读入已经打乱循序的数字,并将对应的bit设为1。

  当处理完所有数字后,根据为0的bit得出没有出现的数字。

  首先计算1到10w的和,平方和。

  然后计算给定数字的和,平方和。

  两次的到的数字相减,可以得到这两个数字的和,平方和。

  所以我们有

  x + y = n

  x^2 + y^2 = m

  解方程可以得到x和y的值。

  腾讯笔试题:需要多少只小白鼠才能在24小时内找到毒药

  有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?

  最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。

  既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?

  首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?

  由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢?

  第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶....以此类推。

  回到此题,总过1000瓶水,所以需要最少10只小白鼠。


本文来源http://www.010zaixian.com/shiti/375506.htm
以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请给我们来信(zaixianzuowenhezi@gmail.com),我们会及时处理和回复,谢谢.