Deskripsi Masalah
Kita semua suka Twix (karena ini adalah permen terbaik), tapi ini Halloween pertama anak-anak --- kita harus mengambil setidaknya satu dari setiap jenis permen untuk mereka. Setiap Halloween, semua penghuni Numberline avenue mengirimkan email yang mengatakan jenis permen apa yang akan mereka bagikan tahun ini.
Oh! Dan kita hidup di dunia 1D.
Menjadi sangat malas dalam beberapa hal dan tidak dalam hal lain, kami telah membuat peta rumah-rumah yang memberikan posisi mereka di sepanjang jalan. Kami juga mencatat jenis permen yang mereka miliki. Inilah peta yang kami buat untuk tahun ini:
[(-2, {"Kisses", "KitKats"}),
(1, {"KitKats", "Peanut Butter Cups"}),
(6, {"Kisses", "Twix"}),
(9, {"Skittles"}),
(10, {"Twix"})]
Demi kaki kecil anak-anak, kita perlu mencari jalan kaki paling pendek mulai dari rumah mana pun di lingkungan itu untuk mengumpulkan setidaknya satu dari setiap jenis permen.
Contohnya
Atas permintaan beberapa pengguna (termasuk Shaggy), saya akan memberikan beberapa contoh yang berhasil. Semoga ini jelas. :) Masukan:
[(-2, {"Kisses", "KitKats"}),
(1, {"KitKats", "Peanut Butter Cups"}),
(6, {"Kisses", "Twix"}),
(9, {"Skittles"}),
(10, {"Twix"})]
Keluaran:
[1, 2, 3]
Peta dan solusi lain ...
Memasukkan:
[(-3, {"KitKats", "Twix"}),
(-1, {"Hundred Grands"}),
(3, {"Kisses"}),
(12, {"Hundred Grands", "Twix", "KitKats"})]
Keluaran :
[0, 1, 2]
Kita bisa mulai di rumah koordinasi 9 rumah mengumpulkan permen di rumah 6 dan 1. Itu memenuhi kuota permen dengan berjalan 8 unit, tetapi apakah itu solusi terpendek?
Aturan
Entri harus mengambil argumen tunggal terstruktur yang sama dengan contoh dan menampilkan indeks rumah untuk dikunjungi dalam solusi terpendek.
Aturan golf khas kode berlaku: solusi terpendek yang benar dalam bytes menang!
PS Ini adalah pertanyaan wawancara yang diberikan kepada saya oleh salah satu perusahaan teknologi terbesar di dunia. Jika Anda tidak suka golf, coba temukan solusi waktu O (k * n) di mana k adalah jumlah jenis permen dan n adalah jumlah rumah.
Edit
Seperti yang ditunjukkan Jonathon Allan, ada beberapa kebingungan di sekitar apa yang dimaksud dengan "indeks" dalam kasus ini. Kami ingin menampilkan posisi rumah dalam daftar argumen dan bukan koordinatnya di jalur.