Java 整数数组列表中最常见的组合

Java 整数数组列表中最常见的组合,java,performance,algorithm,combinations,Java,Performance,Algorithm,Combinations,我有一个整数数组列表,其中每个数组都有一些排序的数字。 在这里,我想找到基于所有数组的最常见的整数序列组合。 例如,如果数组列表如下所示 A1 - 1 2 3 5 7 8 A2 - 2 3 5 6 7 A3 - 3 5 7 9 A4 - 1 2 3 7 9 A5 - 3 5 7 10 这里 以上是一组输入和期望输出。 如何在Java中最有效地执行此操作?创建新的二维数组(具有两行)。在第一行中写入其他数组中的所有值,例如A1和A2={1 2 3 5 6 7 8}。然后转到数组,计算遇到的元素的

我有一个整数数组列表,其中每个数组都有一些排序的数字。 在这里,我想找到基于所有数组的最常见的整数序列组合。 例如,如果数组列表如下所示

A1 - 1 2 3 5 7 8
A2 - 2 3 5 6 7
A3 - 3 5 7 9
A4 - 1 2 3 7 9
A5 - 3 5 7 10
这里

以上是一组输入和期望输出。
如何在Java中最有效地执行此操作?

创建新的二维数组(具有两行)。在第一行中写入其他数组中的所有值,例如A1和A2={1 2 3 5 6 7 8}。然后转到数组,计算遇到的元素的和,并将该和放入数组的相应元素中。然后只分析一个数组。

我想我没有正确理解你的问题。如果你需要输入357,得到A1,A2,A3,我想你需要使用一个列表。例如:

ArrayList<Integer> test = new ArrayList<Integer>();
test.add(1);
test.add(2);
ArrayList<Integer> tesdt2 = new ArrayList<Integer>();
tesdt2.add(1);
tesdt2.add(2);
boolean a = test.containsAll(tesdt2); //true
test.add(3);
ArrayList test=new ArrayList();
测试。添加(1);
测试。添加(2);
ArrayList tesdt2=新的ArrayList();
tesdt2.添加(1);
tesdt2.添加(2);
布尔值a=test.containsAll(tesdt2)//符合事实的
测试。添加(3);
如果需要使用标准数组(Integer[]myArray=newinteger[n];),则需要编写函数,用于查找所有数组并找到所需的元素。大概是这样的:

boolean search(Integer []A1,Integer []array2){
int tmp = -1;
for(int i=0;i<A1.length;i++){
for(int j=0;j<array2.length;j++){
if(A1[j] == array2[i]){
tmp++;


}
            }
            if(tmp!=i){
                return false;
            }
        }
        return true;
    }
布尔搜索(整数[]A1,整数[]array2){
int tmp=-1;

对于(int i=0;我想到了一件好事。对数组排序肯定会有帮助。性能是这里的一个bug障碍。或者一些集合操作可能会有帮助。你看过任何算法吗?为什么答案不是
{3,5}-{A1,A2,A3,A5}
?或者甚至
{3}-{A1,A2,A3,A4,A5}
?那么您想找到最长的公共组合,而不是最常见的组合?{3,5}比{3,5,7}更常见。为什么{7,9}和{1,2,3}那么,输出不是吗?我认为你应该更好地定义到底是什么问题。你是说创建A1、A2、A3、A4的所有组合,然后根据其统计,找到组合?
boolean search(Integer []A1,Integer []array2){
int tmp = -1;
for(int i=0;i<A1.length;i++){
for(int j=0;j<array2.length;j++){
if(A1[j] == array2[i]){
tmp++;


}
            }
            if(tmp!=i){
                return false;
            }
        }
        return true;
    }