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

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

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

相关推荐

牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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