在线编程介绍
阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding
本文为大家介绍其中的 第46题:最大矩形面积 的题目解析,具体如下:
题目描述
题目等级:容易
知识点:数组
查看题目:最大矩形面积
有n根木棍(4<=n<=1e5),它们的长度分别为a1,a2,a3...an(1<=ai<=1e9),现在请你从中挑选出4根木棍来组成一个矩形,问这个矩形的最大面积是多少?
输入木棍数n和n个木棍长度
输出能组成的矩阵的最大面积
示例1
输入:
6
[1,1,2,2,3,3]
输出:
6
解题思路
根据题意,想要组成面积最大的矩形,需要有最大的长与宽,并且组成长与宽的木棍都需要有2根,因此,只要选择最大的两组木棍即可组成最大的矩形。
先对数组从大到小排序,编译寻找最大的木棍,然后遍历数组。找到两个连续的相同数字,记录下这个位置,以这两个数字组成矩形的两条长。接下来从刚才记录的位置接着往下找,再找出两个连续的相同数字,以此组成矩形的两条宽。将找出的矩形的长与宽相乘,即可得到矩形的最大面积。
时间复杂度:O(n)
空间复杂度:O(1)
看完之后是不是有了想法了呢,快来练练手吧>>查看题目:最大矩形面积