아직 배열에없는 조합을 찾는 빠른 방법은 무엇입니까?사용하지 않은 조합 찾기
예컨대, 나는 점의 목록이 있습니다 [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 no, 연결 목록이 정렬되지 않습니다. –