last_rain_day
to keep track of the last day it rained on each lake.next_sunny_day
to keep track of the next available sunny day index.result
to store the answer, filled with 1s initially.rains
array:
a. If rains[i]
is 0, mark next_sunny_day[i]
as i
(it's a sunny day).
b. If rains[i]
is greater than 0, mark next_sunny_day[i]
as i + 1
(it's a rainy day).find_next_sunny_day(i)
that finds the next available sunny day after day i
.rains
array again:
a. If rains[i]
is 0, continue to the next iteration.
b. If rains[i]
is greater than 0, check if the lake has been rained on before using last_rain_day
.
c. If the lake was rained on before, use find_next_sunny_day
to find a sunny day to dry the lake.
d. If no sunny day is available, return an empty array (flooding is inevitable).
e. Update result
and last_rain_day
accordingly.result
array.