[LeetCode] Container With Most Water
http://oj.leetcode.com/problems/container-with-most-water/
从最外侧向内侧搜索, 在长度最长的情况下 保证高度尽量高. 注意如果左边第一个直线是所有直线里最长的情况.
所以我采用左右各遍历一次的方法a了.然后看了题解发现自己好弱智. 还是贴自己的沙茶代码吧.
1 class Solution { 2 public: 3 int maxArea(vector<int> &height) { 4 int re = 0; 5 int cur = 0; 6 int i = (int)height.size() - 1; 7 while (cur < i) { 8 if (height[i] >= height[cur]) { 9 int t = (i - cur) * height[cur]; 10 re = t > re ? t : re; 11 ++cur; 12 } else { 13 --i; 14 } 15 } 16 cur = (int)height.size() - 1; 17 i = 0; 18 while (i < cur) { 19 if (height[i] >= height[cur]) { 20 int t = (cur - i) * height[cur]; 21 re = t > re ? t : re; 22 --cur; 23 } else { 24 ++i; 25 } 26 } 27 return re; 28 } 29 };
浙公网安备 33010602011771号