Heights [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1] — max area.
| Test | Status | Details |
|---|
Ready — edit the code above and click Run or Submit.
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
int[] h = { 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1 };
int l = 0, r = h.Length - 1, best = 0;
while (l < r) {
best = Math.Max(best, Math.Min(h[l], h[r]) * (r - l));
if (h[l] < h[r]) l++; else r--;
}
Console.WriteLine(best);
}
}
Try solving on your own first, then reveal the official answer.
Two pointers from both ends.