KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Didn't find any similar question about this. This is a final round Facebook question: You are given a ring of boxes. Each box has a non-negative number on it, can be duplicate. Write a function/algorithm that will tell you the order at which you select the boxes, that will give you the max sum. The catch is, if you select a box, it is taken off the ring, and so are the two boxes next to it (to the right and the left of the one you selected). so if I have a ring of {10 3 8 12} If I select 12, 8 and 10 will be destroyed and you are left with 3. The max will be selecting 8 first then 10, or 10 first then 8. I tried re-assign the boxes their value by take its own value and then subtracts the two next to is as the cost. So the old ring is {10 3 8 12} the new ring is {-5, -15, -7, -6}, and I will pick the highest. However, this definitely doesn't work if you have { 10, 19, 10, 0}, you should take the two 10s, but the algorithm will take the 19 and 0. Help please? It is most likely dynamic programming, but I don't know how. The ring can be any size.
Tags (comma-separated)
Save Edits
Cancel