LeetCode: Container With Most Water
Title :
https://leetcode.com/problems/container-with-most-water/
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
思路:开始题目读错了,需要考虑X轴的长度。
采用贪心的策略,从左右两边向中间靠近,每次从最短的那个“篱笆”那边向中间靠拢
class Solution{ public: int maxArea(vector<int> & height){ int maxA = 0; int i = 0; int j = height.size() - 1; while (i < j){ int a = (j - i) * min(height[i],height[j]); maxA = (a > maxA)? a : maxA; if (height[i] < height[j]){ i++; }else{ j--; } //maxA = (j - i) * abs(height[i] - height[j]); } return maxA; } };