Python作业—— Leetcode题目选做(1)

本文针对盛水容器问题,提出两种解题思路。第一种使用双重循环遍历所有可能组合,但因效率低下被舍弃。第二种采用双指针法,从两端开始逐步向中间靠拢,最终找到能容纳最多水的容器方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11Container With Most Water

题目内容:


解题思路1:

使用两个循环变量进行遍历,计算出数组中每两个所对应的面积。通过不断比较得到其中的最大值。

代码1:


出现错误:(超时)


错误分析:

算法时间复杂度为O(n2)。故要寻找一个更有效率的方法。


解题思路2:

首先计算出宽度最大时的面积,然后不断缩减宽度直至宽度为0。过程中,每一次减少宽度时,由于宽度降低,只有将长度更小的那一条边变化才有可能获得更大的面积,所以每次是将长度较小的那一条边向内靠近,靠近后再次计算得到新的面积进行比较。最后,宽度降为0后,得到最大面积。

代码2:


提交成功:


11Container With Most Water
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值