pengantar
The Hausdorff jarak mengukur perbedaan antara dua himpunan bagian dari ruang metrik. Secara intuitif, ruang metrik hanya beberapa set dengan fungsi jarak built-in; dalam tantangan ini, kita akan menggunakan bilangan asli dengan jarak biasa d(a, b) := abs(a - b). Jarak Hausdorff antara dua set hingga tidak kosong Adan Bdiberikan oleh
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))
dalam notasi seperti Python. Jarak Hausdorff dapat dihitung dengan menemukan elemen Ayang jarak ke elemen terdekat Bmaksimal, dan elemen Byang jaraknya ke elemen terdekat Amaksimal, dan kemudian mengambil maksimum jarak ini. Dengan kata lain, jika jarak Hausdorff adalah d, maka setiap elemen Aberada dalam jarak dbeberapa elemen B, dan sebaliknya.
Memasukkan
Input Anda adalah satu daftar bilangan bulat. Ini hanya berisi elemen-elemen 0,1,2,3, yang menandakan apakah indeks daftar yang diberikan adalah elemen yang bukan Aatau bukan B, hanya A, saja B, atau keduanya Adan B. Misalnya, input [0,1,1,0,2,3]berarti bahwa A = {1,2,5}dan B = {4,5}, jika kami menggunakan pengindeksan berbasis 0 (yang tidak membuat perbedaan, karena metrik kami adalah terjemahan invarian).
Keluaran
Output Anda adalah jarak Hausdorff antara Adan B; dalam contoh di atas, itu 3. Jika salah satu set kosong, maka jaraknya tidak ditentukan, dan Anda akan kembali -1.
Aturan
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji Kasus
[] -> -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
Asangat dekat dengan salah satunya B, tetapi ada elemen yang Bsangat jauh dari A(misalnya, jika Amerupakan subset dari B). Dalam hal itu, rumus pendeknya salah.
max(max(min(d(a, b) for b in B) for a in A))seharusnya sudah cukup. Ini karenad(a,b)mengembalikan nilai absolut, dan karena itu kedua fungsi maks akan mengembalikan angka yang sama setiap waktu.