我必须在两个列表中找到一些常见的项目。我无法对其进行排序,顺序很重要。必须找出有多少个元素secondList
出现在firstList
. 现在它如下所示:
int[] firstList;
int[] secondList;
int iterator=0;
for(int i:firstList){
while(i <= secondList[iterator]/* two conditions more */){
iterator++;
//some actions
}
}
该算法的复杂度为nxn。我试图降低此操作的复杂性,但我不知道如何以不同的方式比较元素?有什么建议吗?
编辑:
示例:A=5,4,3,2,3
B=1,2,3
我们寻找对B[i],A[j]
条件:何时
B[i] < A[j]
j++
什么时候
B[i] >= A[j]
return B[i],A[j-1]
下一次遍历A到元素j-1的列表(意思是for(int z=0;z<j-1;z++)
)
我不确定,我说清楚了吗?
允许复制。