发布于2020-02-24 22:29 阅读(207) 评论(0) 点赞(20) 收藏(1)
难度:中等
在这种情况下,我们将简单地考虑每对可能出现的线段组合并找出这些情况之下的最大面积。
这种方法背后的思路在于,两线段之间形成的区域总是会受到其中较短那条长度的限制。此外,两线段距离越远,得到的面积就越大。
我们在由线段长度构成的数组中使用两个指针,一个放在开始,一个置于末尾。 此外,我们会使用变量 maxarea来持续存储到目前为止所获得的最大面积。 在每一步中,我们会找出指针所指向的两条线段形成的区域,更新 maxarea,并将指向较短线段的指针向较长线段那端移动一步。
from typing import List
###### leetcode 代码主体 ######
class Solution:
def maxArea(self, height: List[int]) -> int:
i, j, res = 0, len(height) - 1, 0
while i < j:
if height[i] < height[j]:
res = max(res, height[i] * (j - i))
i += 1
else:
res = max(res, height[j] * (j - i))
j -= 1
return res
##### 模拟笔试 要写 输入、输出 ####
## 根据题目 有两个输入,一个列表,一个整数
#输入列表:
nums = input() #键盘输入,输入为字符
nums=nums.split(",") #根据分割分隔符划分字符,这里用逗号
nums = [int(nums[i]) for i in range(len(nums))] #将字符转成int
# 输出
output = Solution()
print(output.maxArea(nums))
作者:外星人入侵
链接:https://www.pythonheidong.com/blog/article/232489/1a70a38d9716fd4b0cb3/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!