Java 按位和乘积最大的数组子集的大小?
如果给定一个由N个整数组成的数组A,如何返回A的最大可能子集的大小,使其AND乘积大于0 我干了一整天,还是没能达到预期的效果 你们能看到我的代码有什么问题吗 我正在输入一个N size={13,7,2,8,3}的数组, 输出应该是3,我得到5 感谢您的帮助。谢谢Java 按位和乘积最大的数组子集的大小?,java,arrays,bit-manipulation,Java,Arrays,Bit Manipulation,如果给定一个由N个整数组成的数组A,如何返回A的最大可能子集的大小,使其AND乘积大于0 我干了一整天,还是没能达到预期的效果 你们能看到我的代码有什么问题吗 我正在输入一个N size={13,7,2,8,3}的数组, 输出应该是3,我得到5 感谢您的帮助。谢谢 publicstaticvoidmain(字符串[]args){ 扫描仪扫描=新扫描仪(System.in); int n=Integer.valueOf(scan.nextLine()); int[]a=新的int[n]; 对于(i
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
int n=Integer.valueOf(scan.nextLine());
int[]a=新的int[n];
对于(int i=0;i
暴力解决方案是尝试该5值集的所有31个非空子集的置换
要迭代置换,只需迭代数字1-31,并检查5位以查看结果中包含的数组值,即使用位操作查找置换,然后使用位操作查找置换的值和置换的值
静态int findLargestSubset(int…值){
如果(值.length>30)
抛出新的IllegalArgumentException(“太多值”);
//迭代所有子集(置换),空子集除外
int maxSubsetSize=0;
int subsetCount=1这主要是一个算法问题,不是吗?提示:int中只有32位。@serendipitatt您添加了一个代码片段,请同时解释您面临的问题是什么code@ManishKothari抱歉!我现在添加了更多详细信息。您的toBitWise
将始终返回0。是否有方法执行此操作不使用位操作?这对我来说仍然有点困惑…@Serendipatt当然,你可以使用递归迭代所有子集的排列。在我看来,位屏蔽更容易。