Avoid Flood in The City
Your country has 10^9 lakes. Initially, all the lakes are empty, but when it rains over the n th lake, the n th lake becomes full of water. If it rains over a lake that is full of water, there will be a flood. Your goal is to avoid floods in any lake.
Provided an integer array rains where:
-
rains[i] > 0means there will be rains over therains[i]lake. -
rains[i] == 0means there are no rains this day and you must choose one lake this day and dry it.
Produce an array ans where:
-
ans.length == rains.length -
ans[i] == -1ifrains[i] > 0. -
ans[i]is the lake you choose to dry in theithday ifrains[i] == 0.
If there are multiple valid answers produce any of them. If it is impossible to avoid flood produce an empty array.
Notice that if you chose to dry a full lake, it becomes empty, but if you chose to dry an empty lake, nothing changes.
Input: rains = [1,2,3,4]
Output: [-1,-1,-1,-1]
Explanation:
-
After the first day full lakes are [1]
-
After the second day full lakes are [1,2]
-
After the third day full lakes are [1,2,3]
-
After the fourth day full lakes are [1,2,3,4]
There's no day to dry any lake and there is no flood in any lake.
Input: rains = [1,2,0,0,2,1]
Output: [-1,-1,2,1,-1,-1]
Explanation:
-
After the first day full lakes are [1]
-
After the second day full lakes are [1,2]
-
After the third day, we dry lake 2. Full lakes are [1]
-
After the fourth day, we dry lake 1. There is no full lakes.
-
After the fifth day, full lakes are [2].
-
After the sixth day, full lakes are [1,2].
It is easy that this scenario is flood-free. [-1,-1,1,2,-1,-1] is another acceptable scenario.
Input: rains = [1,2,0,1,2]
Output: []
Explanation: After the second day, full lakes are [1,2]. We have to dry one lake in the third day.
After that, it will rain over lakes [1,2]. It's easy to prove that no matter which lake you choose to dry in the 3rd day, the other one will flood.
Constraints
1 <= rains.length <= 10^50 <= rains[i] <= 10^9
Did this problem appear in one of your interviews?
Responses stay private.
