[Leetcode]Q11練習記錄
阿新 • • 發佈:2018-12-12
給定 n 個非負整數 a1,a2,...,an,每個數代表座標中的一個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
class Solution(object): def maxArea(self, height): """ :type height: List[int] :rtype: int """ n = len(height) if n < 2: return 0 i = 0 j = n-1 maxArea = 0 while i != j: if height[i] <= height[j]: h = height[i] if h * (j-i) > maxArea: maxArea = h * (j-i) i += 1 else: h = height[j] if h * (j-i) > maxArea: maxArea = h * (j-i) j -= 1 return maxArea
class Solution { public: int maxArea(vector<int>& height) { int n = height.size(); if(n < 2) return 0; int i = 0;int j = n-1;int h = 0; int maxArea = 0; while(i != j){ if(height[i] <= height[j]){ h = height[i]; if((h * (j - i)) > maxArea) maxArea = (h * (j - i)); i += 1; } else{ h = height[j]; if((h * (j - i)) > maxArea) maxArea = (h * (j - i)); j -= 1; } } return maxArea; } };