2015腾讯暑期实习生 Web前端开发 面试经历 --作者imwtr

本文解析了三道典型的算法面试题目,包括使用位运算查找奇数次出现的数字、制定策略确保拿到最后一个苹果以及实现随机发牌算法的同时保证不重复且时间、空间复杂度恒定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.现在有100亿个数字大小为1到10亿的数字,在这100亿个数字里边只有一个数字出现的次数是奇数次的,你用什么方法,找出这个数字呢?

  答:显然至少要全部过一遍,可以用位运算,遍历数组,最后剩下的数字就是出现奇数次的数字(^运算 a^b^b = a)

2.A和B分苹果。分苹果策略是一次一个或者两个,A先拿,然后B拿,然后A拿..一直到拿完问什么方案,能让A拿到最后一个苹果呢?

  答:A先拿一次,确保剩下的是3的倍数,接下来B一个或两个,A一个或两个,确保BA各拿一次合起来是三个,直到最后三个。最后三个不论

  谁先拿都可以确保A最后拿。

3.随机发牌。有10000张牌,随机发出一张,要使得随机发出的牌不重复,而且时间、空间复杂度要恒定。你觉得怎样做可以达到这个目的呢?

  答:面试官的回答,随机打一张后,把该张牌跟最后一张对调,接下来的随机的范围缩小一位,如此循环。

转载于:https://www.cnblogs.com/lhy5678888/p/4425851.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值