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))
    
  • 相关阅读:
    进程的常用方法
    进程创建&僵尸进程&孤儿进程
    进程基础
    操作系统的发展史
    UDP协议&socketserver模块
    socket套接字
    简述计算机网络
    day 7-8 协程
    __new__和__init__的区别
    day 7-22 进程,线程,协程
  • 原文地址:https://www.cnblogs.com/cupid10/p/15617581.html
Copyright © 2011-2022 走看看