1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| object MostWater { def main(args: Array[String]): Unit = { println(solution1(Array(1, 8, 6, 2, 5, 4, 8, 3, 7))) println(solution2(Array(1, 8, 6, 2, 5, 4, 8, 3, 7))) }
def solution1(lines: Array[Int]): Int = { var maxArea = 0 for (i <- 0 until lines.length) { for (j <- i + 1 until lines.length) { maxArea = Math.max(maxArea, Math.min(lines(j), lines(i)) * (j - i)) } } maxArea }
def solution2(lines: Array[Int]): Int = { var l = 0 var r = lines.length - 1 var maxArea = 0 while (l < r) { maxArea = Math.max(maxArea, Math.min(lines(l), lines(r)) * (r - l)) if (lines(r) > lines(l)) l += 1 else r -= 1 } maxArea } }
|