首页 > Web开发 > 详细

js最大盛水问题

时间:2020-04-25 23:56:48      阅读:105      评论:0      收藏:0      [点我收藏+]
来自于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
};

 

js最大盛水问题

原文:https://www.cnblogs.com/forever-xuehf/p/12776145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!