9.20B站笔试

  第一题怎么改都是5%,大佬们给看看,我寻思这个思路真的够简单了。就是比num小的最大的2的幂处缩减。顺便统计一下大伙A了多少。
for _ in range(int(input())):
    n = int(input())
    nums = list(map(int , input().split()))
    res = set()
    for num in nums:
        k = 0
        while num >= 2**k:
            k+=1
        if k > 0:
            res.add(k-1)

    print(len(res))




#笔试##投票#
全部评论
k反过来遍历
1 回复 分享
发布于 2022-09-20 21:21 北京
第一题直接所有数取位或,数二进制1的个数就是答案
1 回复 分享
发布于 2022-09-20 21:13 上海
同5%
1 回复 分享
发布于 2022-09-20 20:48 北京
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-22 08:07 北京
啊,难道不是问答题嘛,我写了个啥。。。
点赞 回复 分享
发布于 2022-09-20 21:48 浙江

相关推荐

12-24 20:49
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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