92:Container With Most Water

来源:互联网 发布:mac照片图库文件夹 编辑:程序博客网 时间:2024/05/17 23:22

题目: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.
Note: You may not slant the container.

每个容器的面积取决于最短的木板,解题代码如下:

// 时间复杂度 O(n),空间复杂度 O(1)class Solution {public:        int maxArea(vector<int>& height) {                int start = 0;                int end = height.size() - 1;                int result = INT_MIN;                while (start < end) {                        int area = min(height[end], height[start]) * (end - start);                        result = max(result, area);                        if (height[start] <= height[end]) ++start;                        else --end;                }                return result;        }};

上面代码的思想及编写参考了网址https://github.com/soulmachine/leetcode#leetcode题解题目

0 0
原创粉丝点击