foreverwaiting
万人非你X
来自于leetcode(曾在小米校招笔试题见到过)

 

解题思路来源:https://www.bilibili.com/video/BV1TK411j7LP

  可能脑子最快想到的就是暴力枚举,就像选择排序那样的,类似如下动图:

 

   不会像大佬那样一下想到双指针之类的算法;

   但可以仔细分析下枚举,看看是不是可以不暴力的枚举,而是有思想的枚举,这样就可以通过(计算机的死板但可重复+人灵活的大脑)解决复杂问题;

   从暴力枚举 ==》 优化枚举 ==》 解题;

   详情可看视频学习;

 

js答案如下:

var maxArea = function(height) {
    if (!height || height.length <= 1) return 0;
    var left = 0;
    var right = height.length - 1;
    var answer = 0;
    while(left < right){
        answer = Math.max(answer,((right - left) * (Math.min(height[left], height[right]))))
        if (height[left] < height[right]) {
            left ++
        } else {
            right --
        }
    }
    return answer
};

 

posted on 2020-04-25 23:13  foreverwaiting  阅读(188)  评论(0编辑  收藏  举报