网易笔试题,求是否存在子集按位或之后为k,有AC的吗?

我的思路伪代码:
and_set = []
for n in all_set:
    if n&k == n:
         and_set.append(n)
之后就转换为and_set中求子集之和为k的问题了,然后一直只有20%通过,不知道哪里错了?

#网易##笔试题目##春招#
全部评论
算法复杂度太高了 但是思路方向应该是对的,感觉枚举之前出现过的数的超集可以过
点赞 回复 分享
发布于 2019-08-03 18:17
好像直接把and_set中的所有数进行位或运算,然后判断是否为k就行了?
点赞 回复 分享
发布于 2019-08-03 18:18
请问怎么O(n)?
点赞 回复 分享
发布于 2020-03-29 22:54
遍历集合的每个数和k做或运算,如果结果为k则加入新集合,最后把新集合的所有数做或运算,如果是k就有,否则无。
点赞 回复 分享
发布于 2020-04-03 16:35

相关推荐

02-11 17:47
已编辑
门头沟学院 Java
神哥不得了:神哥来啦~建议先在网上找一些高频的八股去背,然后再去广泛的背八股,这样的学习会更有效率一些,简历的这两个项目建议换掉,换成两个高质量的项目,这样的话获得面试的比例会更高一点,专业技能的话排版要注意一下,要加句号的话就都加,要不加就都不加,荣誉奖项的话写在教育经历里边吧,这个确实没有太多的含金量
点赞 评论 收藏
分享
02-05 08:18
四川大学 Java
在思考的熊熊很讨厌吃香菜:不是,我门头沟学院呢?这都没排上?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务