本文主要是介绍Leetcode|11. 盛最多水的容器(双指针+两边中高度最低的指针靠近),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1 暴力(超时)
- 2 双指针(双指针+两边中高度最低的指针靠近)
1 暴力(超时)
class Solution {
public:int maxArea(vector<int>& height) {int maxarea = 0;int size = height.size();for (int i = 0; i < size; i ++) for (int j = size - 1; j > i; j--) {int maxCoArea = (j - i) * min(height[i], height[j]);if (maxCoArea > maxarea)maxarea = maxCoArea;}return maxarea;}
};
2 双指针(双指针+两边中高度最低的指针靠近)
class Solution {
public:int maxArea(vector<int>& height) {int maxarea = 0;int left = 0, right = height.size() - 1;while (left < right) {int coarea = (right - left) * min(height[left], height[right]);if (coarea > maxarea) maxarea = coarea;// 两边中高度最低的指针靠近1步if (height[left] < height[right]) left++;else right--;}return maxarea;}
};
这篇关于Leetcode|11. 盛最多水的容器(双指针+两边中高度最低的指针靠近)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!