LeetCode热题100(Hot100) 每日题目记录)_JavaScript实现_2022-4-25

本文记录了2022年4月25日LeetCode热门题目100中的三道题目,包括盛水最多的容器、三数之和和电话号码的字母组合。对于每道题,作者都提供了使用JavaScript的双指针法或枚举法的思路及代码实现,但部分暴力解法因超时未通过测试。
摘要由CSDN通过智能技术生成

2022-4-25 LeetCode热题100(hot100) 每日题目第二周     周一

LeetCode链接

题目名:盛水最多的容器
方法:双指针或暴力解法(超时)
整体思路
  • 第一种思路:首先最容易想到的就是暴力解法,即枚举所有可能的情况,但是没有卵用,后面的测试样例根本过不了!
  • 第二种思路:双指针
  1. 我们可以看到制约盛水面积的主要因素是受限于最短的边,类似于木桶效应
  2. 所以定义左指针left,以及右指针right,分别向中间移动,当left指针对应的线的高度比right指针所对应的线的高度小的时候,说明盛水面积受限于左边高度left,那么就改变left指针的值。left++向右边移动,反之的话right- -向左边移动。
  3. 具体实现见代码
代码实现
//  解法1:暴力
const maxArea= (height) => {
   
	// 数组长度为2就直接返回
    if(height.length===2) return Math.min(height[0],height[1])
    //用于存放最大的面积
    let max = 0
    for(let i =0;i < height.length-1;i++) {
   
        for (let j = i+1;j<height.length;j++) {
   
            let temp = (j-i)*Math.min(height[i],height[j])
            max = Math.max(max,temp)
        }
    }
    return max
}
// 解法2:双指针
    if(height.length===2) return Math.min(height[0],height
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值