Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Avoid Flood in The City
Bookmark
Brute Force
Sorted Set
Min-Heap
Input
Example 1
Example 2
Simple drain
Multiple drains
Custom
rains
=
[1, 2, 0, 0, 2, 1]
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
dryDays = {
}
full = {
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
?
?
?
?
?
?
lakeDay = {}, dryDays = {}, ans = [?, …]
dryDays = {
}
full = {
1, 2
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
?
?
?
?
i
rain fills lake
2
: lakeDay[2] =
1
, ans[1] =
-1
dryDays = {
2
}
full = {
1, 2
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
1
?
?
?
i
day
2
is dry → bank it, ans[2] =
1
for now
dryDays = {
2, 3
}
full = {
1, 2
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
1
1
?
?
i
day
3
is dry → bank it, ans[3] =
1
for now
dryDays = {
3
}
full = {
1
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
2
1
?
?
i
ans[
2
] =
2
→ drain lake 2 before today's rain
dryDays = {
3
}
full = {
1, 2
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
2
1
-1
?
i
rain fills lake
2
: lakeDay[2] =
4
, ans[4] =
-1
dryDays = {
3
}
full = {
1, 2
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
2
1
-1
?
i
lake
1
full since day
0
→ checking:
day 3
dryDays = {
}
full = {
2, 1
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
2
1
-1
-1
i
rain fills lake
1
: lakeDay[1] =
5
, ans[5] =
-1
dryDays = {
}
full = {
2, 1
}
rains
lakes
ans
0
1
2
3
4
5
1
2
0
0
2
1
1
lake 1
2
lake 2
-1
-1
2
1
-1
-1
No lake flooded
algo
master
.
io
Step:
Start: Pick which lake to drain on each dry day so no lake floods
0 / 12
Input
Example 1
Example 2
Simple drain
Multiple drains
Custom
rains
=
[1, 2, 0, 0, 2, 1]
0 / 12
algo
master
.
io
Step:
Start: Pick which lake to drain on each dry day so no lake floods