从一组 N 个数字 (1...N) 中找到长度为 K 的子集,其中 k<=N,其 XOR 值为 X

问题描述

编写一个算法,从一组 N 个数字 (1...N) 中找到长度为 K {A1,A2 ...,AK} 的子集,其中 K

约束条件:1

例如

如果 N=5,K=4,X=5

输出: 1 2 3 5

如果 N=5,K=5,X=5

输出:-1

我尝试了以下解决方案:

  • 找出长度为 K 的所有可能子集
  • 检查是否有任何子集的异或总和 = X

上述解决方案的复杂度 O(C(n,k)) 对于大 N 值不是最佳的。 这个问题有没有线性时间解决方案。请帮忙。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)