소개
하우스 도르프 거리 메트릭 공간의 두 개의 서브 세트들 사이의 차이를 측정한다. 직관적으로, 미터법 공간은 내장 된 거리 기능으로 설정됩니다. 이 도전에서, 우리는 일반적인 거리를 가진 자연수를 사용할 것 d(a, b) := abs(a - b)
입니다. 하우스 도르프의 두 비어 유한 집합 사이의 거리 A
와는 B
주어진다
max(max(min(d(a, b) for b in B) for a in A),
max(min(d(a, b) for a in A) for b in B))
파이썬과 같은 표기법으로. Hausdorff 거리는 A
가장 가까운 요소까지의 거리 B
가 최대 인 요소와 B
가장 가까운 요소까지의 거리 A
가 최대 인 요소를 찾은 다음이 거리의 최대 값을 계산하여 계산할 수 있습니다 . 즉, Hausdorff 거리가 d
인 경우의 모든 요소는 의 일부 요소의 A
거리 내에 있으며 그 반대도 마찬가지입니다.d
B
입력
입력은 단일 정수 목록입니다. 그것은 요소만을 포함 0,1,2,3
리스트의 인덱스가 주어진 소자의 어느 쪽인지를 나타 내기, A
도 B
오직 A
단 B
또는 둘 모두 A
와 B
. 예를 들면, 입력 [0,1,1,0,2,3]
수단 A = {1,2,5}
과 B = {4,5}
, 우리는 (로모 메트릭 변환 불변으로 아무런 차이가없는) 0 기반 인덱스를 사용하는 경우.
산출
귀하의 출력 사이의 하우스 도르프의 거리 A
와 B
; 위의 예에서는입니다 3
. 두 세트 중 하나가 비어 있으면 거리가 정의되어 있지 않으므로를 반환해야 -1
합니다.
규칙
전체 프로그램이나 함수를 작성할 수 있습니다. 가장 낮은 바이트 수가 이기고 표준 허점은 허용되지 않습니다.
테스트 사례
[] -> -1
[0] -> -1
[0,1,0] -> -1
[2,0,0,2] -> -1
[0,1,2,3] -> 1
[0,3,3,0,0,0,0,3] -> 0
[1,0,0,1,0,0,1,3,1] -> 7
[1,0,0,0,0,3,0,0,0,0,2] -> 5
[0,1,1,3,1,3,2,1,1,3,0,3] -> 2
[2,2,2,1,2,0,3,1,3,1,0,3] -> 3
[1,3,0,2,0,2,2,1,0,3,2,1,1,2,2] -> 2
[1,0,1,1,2,0,1,2,3,1,0,0,0,1,2,0] -> 4
A
가 중 하나에 매우 가깝지만 매우 멀리 떨어져 B
있는 요소가있을 수 B
있습니다 A
(예 A
:의 하위 집합 인 경우 B
). 이 경우 짧은 공식이 올바르지 않습니다.
max(max(min(d(a, b) for b in B) for a in A))
. 이는d(a,b)
절대 값을 반환하기 때문에 두 max 함수는 매번 같은 숫자를 반환합니다.