网易笔试题,求是否存在子集按位或之后为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

相关推荐

生命诚可贵:先不说内容怎么样 排版就已经太差劲了 第一眼看不到重点,第二眼已经没有再看的耐心了, 篇幅占的太满了 字体不要用灰色 观感不好 想重点突出的黑色加粗就可以了 多列要点 少些大段的句子 项目经历把项目用的技术要点列出来,光写个python plc什么的太宽泛了 自我评价也有点偏多
点赞 评论 收藏
分享
Aaso:挺好的,早挂早超生
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务