腾讯笔试编程题第三道

腾讯笔试编程题第三道题 a,b两个数同时加1或者同时乘以2,求最小等于A,B的次数,用的递归方法,用了三个判断分别是1):  if  (a+1)*2==A、(b+1)*2==B。2)else if    a*2<=A、B*2<=B。3) else    递归函数名(a/2+1   b/2+1)、方法是递归,试了几个简单的用例还可以如果复杂的话不知道行不行,有和我一样做法的么
全部评论
逆向奇偶分析,偶数除2,奇数减1。
点赞 回复 分享
发布于 2017-09-13 17:21
我这是第一道555
点赞 回复 分享
发布于 2017-09-13 17:17
反过来就行了吧
点赞 回复 分享
发布于 2017-09-13 17:46
我的思路是将 a A转化成二进制然后再进行比较 例子一: 100: 1100100 202: 11001010   // 2位不同即需要2次 (1+1 =2) 406: 110010110 // 3位不同即需要3次 (1+2 =3) 因为1100100<1100101,所以直接比较, 例子二: 7 18 18:111 20:10010 因为111>100,所以比较111 和 1001的差,记录数,然后再比较不同的位数。 所以 2 +1,需要三步 即先比较 a和A a.length长度的二进制
点赞 回复 分享
发布于 2017-09-13 17:43
乘2操作,和加1操作最后,就是a 乘以 2^ n + f(2)的多项式 例子: ((a + 1) * 2 + 1) * 2 = > a.2 ^ 2 + 2^2 + 2... A - B = a*2 ^n - b*2^n => n = log2( (A - B) / (a -b)),球的乘2的个数 然后再贪心求1的个数
点赞 回复 分享
发布于 2017-09-13 17:26
先判断判断两组数的大小吧,A<a这种是不行的,要求a必须变成A吗,如果是的话ab得大小关系一定和AB的大小关系一样,如果不是的话得先判断大小关系,小的变小的,大的变大的
点赞 回复 分享
发布于 2017-09-13 17:20
听大神说的BFS
点赞 回复 分享
发布于 2017-09-13 17:19
我也用的递归方法
点赞 回复 分享
发布于 2017-09-13 17:18
看大家都在吐槽腾讯的编程环境我就放心了,那也叫智能提示?
点赞 回复 分享
发布于 2017-09-13 17:14

相关推荐

不愿透露姓名的神秘牛友
07-25 17:23
做完了怎么知道过没过呀
投递京东等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 17:55
点赞 评论 收藏
分享
DKS233:(1)专业技能:Java8也太旧了,最少也要了解到JDK17吧,可以参考现在SpringBoot支持的Java最低版本,熟悉mysql基本理论具体指啥,是锁这种具体原理还是分库分表这些业务场景,spring这些专业词汇,大小写要写对(全篇简历都有这个问题,显得不严谨),熟悉使用框架进行业务开发就别写了,如果要写,起码要写到框架原理部分吧,比如aop,启动原理什么的,springcloud具体指哪些模块呢,写清楚,网关还是鉴权还是什么,“改造”没必要写吧,你直接说用springcloud开发的不就行了(2)项目经历:首先格式就有大问题,时间怎么能换行呢,调整一下,响应速度那个,如果指的是将部分数据从其他数据库转到redis的提升就别写了,因为这个不算难点,redis可以写写分布式这些,比如容灾怎么实现的,数据库同步怎么做的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务