zoukankan      html  css  js  c++  java
  • 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线

    动态规划

      var maxArea = function (height) {
            var h = Math.min(height[0], height[1])
            let area = h * 1
            for (let i = 0; i < height.length; i++) {
                let end = i + 1
                while (end < height.length) {
                    area = Math.max((end - i) * (Math.min(height[i], height[end])), area)
                    end++
                }
            }
            return area
        };
            var height = [1, 8, 6, 2, 5, 4, 8, 3, 7]
         console.log(maxArea(height))
    

    双指针

        var maxArea = function (height) {
            let l = 0
            let r = height.length - 1;
            let area = 0;
            while (l < r) {
                area = Math.max(Math.min(height[l], height[r]) * (r - l), area);
                if (height[l] <= height[r]) {
                    ++l;
                } else {
                    --r;
                }
            }
            return area;
        };
        var height = [1, 8, 6, 2, 5, 4, 8, 3, 7]
         console.log(maxArea(height))
    
  • 相关阅读:
    Js 作用域链
    JS 上下文模式
    javascript
    HTTP概念进阶
    JavaScript运行机制详解
    浅谈循环中setTimeout执行顺序问题
    Js 运行机制 (重点!!)
    javascript
    jQuery 知识点总结
    Educational Codeforces Round 87 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/cupid10/p/15617581.html
Copyright © 2011-2022 走看看