Leecode 的一道算法题,记录一下
程序员文章站
2022-05-12 14:01:47
...
最近在LeetCode上面刷题,发现了一道有趣的题,以下是他的题目概述:
首先,我们通过分析题目了解他大概的问题和需求,其实当中最重要的是如何找到最大的面积,但是又不能以两个数据最大值的来计算,我们还要分析他的长与宽,话不多说,献上代码,里面有每一句的注释。
list = [1,8,6,2,5,4,8,3,7]
# 数组最左边的起始位置
left = 0
# 数组最右边的起始位置
right = len(list) - 1
# 初始化最大面积
max_area = 0
# 死循环走完每一个位置的数组
while left < right:
# 判断如果右边的值大于左边的值 高就为左边的否则反之 因为是注水问题,需要选择最短的那个条边
# 类似于木桶效应问题,如果不懂可以查看下方链接
height = list[left] if list[left] < list[right] else list[right]
# 计算面积公式 选出最大值
max_area = max(max_area,(right - left) * height)
# 判断数组中的值 如果左边的小于右边的那么左边的位置的加 1 否则反之
if list[left] < list[right]:
left += 1
else:
right -= 1
print(max_area
阅读链接 : 木桶效应
执行结果如下:
上一篇: 基于Xposed的hook实战
下一篇: 记录一道前端面试算法题
推荐阅读
-
【每日一道算法题】Leetcode之longest-increasing-path-in-a-matrix矩阵中的最长递增路径问题 Java dfs+记忆化
-
一道简单的算法题:不借助第三变量来交换两个变量的值
-
自己出的一道java8设计题,让我们一起来学习一下java8的优秀思想
-
Leecode 的一道算法题,记录一下
-
记录一道前端面试算法题
-
Java小白必须会的一道算法题
-
一道算法题的分析
-
【每日一道算法题】Leetcode之longest-increasing-path-in-a-matrix矩阵中的最长递增路径问题 Java dfs+记忆化
-
一道有意思的面试算法题
-
如果面试官给你出一道算法题,你能答的上来吗?