Skip to content

Commit a9828f7

Browse files
hanhan
han
authored and
han
committed
container-with-most-water
1 parent 2dc75f9 commit a9828f7

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

container-with-most-water/han.exs

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
defmodule Solution do
2+
@spec max_area(height :: [integer]) :: integer
3+
def max_area(heights) do
4+
List.to_tuple(heights) |> max_area(0, length(heights) - 1, 0)
5+
end
6+
7+
defp max_area(_, left_pointer, right_pointer, answer) when left_pointer == right_pointer, do: answer
8+
9+
defp max_area(heights, left_pointer, right_pointer, answer) do
10+
lh = elem(heights, left_pointer)
11+
rh = elem(heights, right_pointer)
12+
height = min(lh, rh)
13+
width = right_pointer - left_pointer
14+
15+
new_max_area = max(answer, height * width)
16+
cond do
17+
lh < rh ->
18+
max_area(heights, left_pointer + 1, right_pointer, new_max_area)
19+
true ->
20+
max_area(heights, left_pointer, right_pointer - 1, new_max_area)
21+
end
22+
end
23+
end

0 commit comments

Comments
 (0)