Leetcode 11 Container With Most Water

本题不是很难,应用对撞指针就可以得到正确的答案。说下自己犯的一些错误吧,

1. int short = 0,结果编译后出现了Line 4: expected unqualified-id before '=' token的错误,当时我还是一脸懵逼,还以为是标点符号或者其他的错误。后来才想起来,short指代的是基本数据类型short  int。

2.将--r写成了++r。神奇的是,使用vector对越界的下标竟然没有出错。

附上正确AC的代码

class Solution {
public:
    int maxArea(vector<int>& height) {
        int shortLine = 0;
        int area = 0;
        
        int res = 0;
        int l = 0;
        int r = height.size() - 1;
        
        while (l < r && l < height.size() && r > 0) {
            shortLine = min(height[l], height[r]);
            area = shortLine * (r - l);
            
            if (area > res) {
                res = area;
            }
            
            if (height[l] < height[r]) {
                ++l;
            }
            
            else {
                --r;
            }
        }
        
        return res;
    }
};

 

posted @ 2018-08-28 08:09  ly-bnu  阅读(69)  评论(0)    收藏  举报