Mô tả vấn đề
Tất cả chúng ta đều yêu thích Twix (vì đó là kẹo tốt nhất), nhưng đây là Halloween đầu tiên của trẻ em --- chúng ta phải lấy ít nhất một trong số mỗi loại kẹo cho chúng. Mỗi dịp Halloween, tất cả cư dân của đại lộ Numberline đều gửi email cho biết họ sẽ tặng loại kẹo nào trong năm nay.
Oh! Và chúng ta sống trong một thế giới 1D.
Rất lười biếng trong một số cách và không phải ở những người khác, chúng tôi đã tạo ra một bản đồ của những ngôi nhà cho vị trí của họ dọc theo đường phố. Chúng tôi cũng lưu ý các loại kẹo họ có. Đây là bản đồ chúng tôi đã tạo cho năm nay:
[(-2, {"Kisses", "KitKats"}),
(1, {"KitKats", "Peanut Butter Cups"}),
(6, {"Kisses", "Twix"}),
(9, {"Skittles"}),
(10, {"Twix"})]
Vì lợi ích của đôi chân nhỏ của trẻ em, chúng ta cần tìm một cuộc đi bộ ngắn nhất bắt đầu từ bất kỳ ngôi nhà nào trong khu phố để thu thập ít nhất một trong mỗi loại kẹo.
Ví dụ
Theo yêu cầu của một vài người dùng (bao gồm cả Shaggy), tôi sẽ đưa vào một số ví dụ hoạt động. Hy vọng điều này sẽ làm sáng tỏ mọi thứ. :) Đầu vào:
[(-2, {"Kisses", "KitKats"}),
(1, {"KitKats", "Peanut Butter Cups"}),
(6, {"Kisses", "Twix"}),
(9, {"Skittles"}),
(10, {"Twix"})]
Đầu ra:
[1, 2, 3]
Một bản đồ và giải pháp khác ...
Đầu vào:
[(-3, {"KitKats", "Twix"}),
(-1, {"Hundred Grands"}),
(3, {"Kisses"}),
(12, {"Hundred Grands", "Twix", "KitKats"})]
Đầu ra :
[0, 1, 2]
Chúng ta có thể bắt đầu ở tọa độ 9 nhà thu thập kẹo đến nhà 6 và 1. Điều đó làm đầy hạn ngạch kẹo bằng cách đi bộ 8 đơn vị, nhưng đó có phải là giải pháp ngắn nhất?
Quy tắc
Các mục nhập phải có một đối số duy nhất có cấu trúc tương tự với ví dụ và đưa ra các chỉ số của các ngôi nhà sẽ truy cập trong giải pháp ngắn nhất.
Quy tắc golf mã điển hình được áp dụng: giải pháp đúng ngắn nhất tính theo byte thắng!
Tái bút: Đây là một câu hỏi phỏng vấn được đưa ra cho tôi bởi một trong những công ty công nghệ lớn nhất thế giới. Nếu bạn không thích chơi gôn, hãy thử tìm giải pháp thời gian O (k * n) trong đó k là số loại kẹo và n là số lượng nhà.
Biên tập
Như Jonathon Allan đã chỉ ra, một số nhầm lẫn tồn tại xung quanh "chỉ số" nghĩa là gì trong trường hợp này. Chúng tôi muốn xuất các vị trí nhà trong danh sách đối số chứ không phải tọa độ của chúng trên làn đường.