首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每日两题 T28

每日两题 T28

作者头像
合一大师
发布2020-07-20 09:54:37
1770
发布2020-07-20 09:54:37
举报
文章被收录于专栏:JavaScript全栈JavaScript全栈

算法

LeetCode T11. 盛最多水的容器[1]

描述

给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

说明:你不能倾斜容器,且 n 的值至少为 2。

图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例 :

输入:[1,8,6,2,5,4,8,3,7]
输出:49

分析

本题解法类似 盛雨水 ,使用双指针。

代码

/**
 * @param {number[]} height
 * @return {number}
 */
var maxArea = function (height) {
  let i = 0, j = height.length - 1;
  let square, max = 0;
  while (j - i >= 1) {
    if (height[i] > height[j]) {
      square = height[j] * (j - i);
      j--;
    } else {
      square = height[i] * (j - i);
      i++;
    }
    max = Math.max(square, max);
  }
  return max;
};

前端

说说Promises/A+规范

术语介绍

promise:是一个拥有 then 方法的对象或函数,其行为符合本规范 thenable:是一个定义了 then 方法的对象或函数。这个主要是用来兼容一些老的Promise实现,只要一个Promise实现是thenable,也就是拥有then方法的,就可以跟Promises/A+兼容。 value:指reslove出来的值,可以是任何合法的JS值(包括 undefined , thenable 和 promise等) exception:异常,在Promise里面用throw抛出来的值 reason:拒绝原因,是reject里面传的参数,表示reject的原因

状态

pending: 一个promise在resolve或者reject前就处于这个状态。 fulfilled: 一个promise被resolve后就处于fulfilled状态,这个状态不能再改变,而且必须拥有一个不可变的值(value)。 rejected: 一个promise被reject后就处于rejected状态,这个状态也不能再改变,而且必须拥有一个不可变的拒绝原因(reason)。

then方法

promise.then(fulfilledFn, rejectedFn)

catch方法

promise.catch(rejectedFn)

当然在新的ES规范中,asyncawait 处理异步的方式是 Promise + generator 实现,具体实现与规范明天的内容阐述。

References

[1] 11. 盛最多水的容器: https://leetcode-cn.com/problems/container-with-most-water/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaScript全栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算法
    • LeetCode T11. 盛最多水的容器[1]
      • 描述
        • 分析
          • 代码
            • 前端
              • 说说Promises/A+规范
                • References
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档