第一次用了个O(n^2)的算法large没过,就仔细想了想,少数次过吧
1 class Solution { 2 public: 3 int maxArea(vector<int> &height) { 4 // Start typing your C/C++ solution below 5 // DO NOT write int main() function 6 int sum = 0; 7 int beg = 0; 8 int end = height.size()-1; 9 while (beg < end) { 10 sum = max(sum, min(height[beg], height[end])*(end-beg)); 11 if (height[beg] > height[end]) end--; 12 else beg++; 13 } 14 return sum; 15 } 16 };
C#
1 public class Solution { 2 public int MaxArea(int[] height) { 3 int sum = 0; 4 int beg = 0; 5 int end = height.Length - 1; 6 while (beg < end) { 7 sum = Math.Max(sum, Math.Min(height[beg], height[end]) * (end - beg)); 8 if (height[beg] > height[end]) end--; 9 else beg++; 10 } 11 return sum; 12 } 13 }