Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按位和乘积最大的数组子集的大小?_Java_Arrays_Bit Manipulation - Fatal编程技术网

Java 按位和乘积最大的数组子集的大小?

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

如果给定一个由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];
对于(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当然,你可以使用递归迭代所有子集的排列。在我看来,位屏蔽更容易。