找到數組中尚未存在的組合的快速方法是什麼?查找未使用的組合
E.g,我點的名單:[1, 2, 4, 9]
而且我有連接的列表[[1,2], [1,4], [1,9], [2,4], [4,9]]
所以在這個列表中缺少的連接是[2,9]
。由於有一個要求:每個整數必須連接到一個更大的整數。
var points = [1, 2, 4, 9];
var connections = [[1,2], [1,4], [1,9], [2,4], [4,9]];
var missing = [];
for(i = 0; i < points.length; i++){
for(j = i + 1; j < points.length; j++){
var found = false;
for(var a = 0; a < connections.length; a++){
if(connections[a][0] == points[i] && connections[a][1] == points[j]){
found = true;
break;
}
}
if(!found) missing.push([points[i], points[j]]);
}
}
console.log(missing);
上面的代碼有效,但是for循環的數量讓我覺得它相當慢。有沒有更快的方法來做到這一點?查看jsfiddle
保證您的數據進行排序或不? –
@TatsuyukiIshi不,排序的連接列表。 –