如果存在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)相同的元素呢? –