华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html
OD统一考试 B 卷:航天器
题目
给航天器一侧加装长方形和正方形的太阳能板(图中的斜线区域);
需要先安装两个支柱(图中的黑色竖条);
再在支柱的中间部分固定太阳能板;
但航天器不同位置的支柱长度不同;
太阳能板的安装面积受限于最短一侧的那支支柱的长度;
现提供一组整型数组的支柱高度数据;
假设每个支柱间的距离相等为一个单位长度;
计算如何选择两根支柱可以使太阳能板的面积最大;
输入
10,9,8,7,6,5,4,3,2,1
注释,支柱至少有两根,最多10000
根,能支持的高度范围1 ~ 10^9
的整数
柱子的高度是无序的
例子中的递减是巧合
输出
可以支持的最大太阳板面积:(10m 高支柱和 5m 高支柱之间)
25
示例一
输入
10,9,8,7,6,5,4,3,2,1
输出
25
备注
0
米高支柱和5
米高支柱之间宽度为5
,高度取小的支柱高度也是5
,面积为25
任取其他两根支柱所能获得的面积都小于25
所以最大面积为25
编码思路
该算法基于暴力枚举,枚举每对数字之间形成的矩形面积并计算最大面积。时间复杂度为 O(n^2),其中 n 为数组长度。由于 Python 中的列表可以自动扩容,因此无需预先设定数组大小。
核心知识点
代码简单,阅读即可掌握。
使用说明
参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。