如果存在4 * 2矩阵: A = [1,2; 3,4; 5,6; 7,1] 我需要查找至少包含行这些行之间通用的元素。例如在上面的例子中,1和4行共有1个。这矩阵行可以是很大的长度。有什么可以成为最好的算法/逻辑,它查找行之间矩阵的公共元素
我尝试下面的算法:对我来说,矩阵只有2列
for(i=0;i<N;i++){
for(j=i+1;j<N;j++){
if(ipArr[i][0] == ipArr[j][0] || ipArr[i][0] == ipArr[j][1] ||
ipArr[i][1] == ipArr[j][0] || ipArr[i][1] == ipArr[j][1]){
//code to perform for repeating row, having atleast 1 common element.
}
}
}
,它只会是2。它是N行
它没有工作
您是指所有具有共同元素的行对?或者你想要一对单行吗?还是你想要更大的行组共享一个共同的元素? (这些问题都不是很容易,但最后一个更难,我想 - 也需要进一步的定义。)另外,您是什么意思的“最好”?时间表现?内存使用?还有别的吗? –
它主要是一个算法来分类和查找多少组的行具有共同的元素,一个组可以有> = 2行,我需要找到每个行是每个组的一部分。更多细节越好。 如果1,2,3行具有共同元素,则1,2,3一起组成一个组 –
该问题缺乏某些定义。假设你有行(1,2,3),(2,5,6),(3,5,7)。每一行都有一个与其他两个元素相同的元素,但没有元素对于所有三个元素都是共同的。应该如何分组?如果第三行是(4,5,7),那么它不再有与(1,2,3)相同的元素呢? –