题目:

给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。但航天器不同位置的支柱长度不同,太阳能板的安装面积受限于最短一侧的那根支柱长度。如图:

输入描述

10,9,8,7,6,5,4,3,2,1

注释,支柱至少有两根,最多10000根,能支持的高度范围1~10^9的整数,柱子的高度是无序的,例子中的递减是巧合

输出描述

可以支持的最大太阳板面积:(10m高支柱和5m高支柱之间)

25

示例1

输入

10,9,8,7,6,5,4,3,2,1

输出

25

备注 10米高支柱和5米高支柱之间宽度为5,高度取小的支柱高度也是5

面积为25

任取其他两根支柱所能获得的面积都小于25 所以最大面积为25。

解题思路:

1.注意题目中黑色加粗字体,我们理解一下。也就是说对于两根柱子而言,即使一个是1,一个是9,那么这个太阳能板能安装的最大面积也只是取决于最短柱子的长度,因此我们在获取这两根柱子高度时,应该选择Math.min(arr[i],arr[j])来作为太阳能板的高度。

2.而太阳能板的宽度,则是两根柱子的索引差,用j-i即可。

3.用一个变量来保存最大的面积,通过不断比较更新最大面积。

代码:

function maxSqr(arr) {let maxValue = 0 for(let i = 0 ; i <arr.length ; i++) {for(let j = 0; j < arr.length;j++) {maxValue = Math.max(maxValue,Math.min(arr[i],arr[j])*(j-i))}}return maxValue
}console.log(maxSqr([10,9,8,7,6,5,4,3,2,1]))  //25

牛客网上的代码只需要处理一下输入输出即可。

代码优化:

上述代码时间复杂度较高,因此我们需要对代码进行优化。

可以使用双指针的解法,初始化双指针分列水槽左右两端,循环每轮将短板向内移动一格,并更新面积最大值,直到两指针相遇时跳出;即可获得最大面积。

因为每次移动短板,这个太阳板的最短板可能变大,下一个太阳板的面积可能增大。

而如果移动长板,则这个太阳板的短板不变或者变小,下一个太阳板的面积必然变小。

因此应该移动短板。

var maxArea = function(height) {let i = 0 , j = height.length - 1, res = 0;while(i<j) {res = height[i] < height[j] ? Math.max(res,(j-i)*height[i++]) : Math.max(res,(j-i)*height[j--])}return res
};

太阳能板最大面积js相关推荐

  1. 太阳能发电板的规格尺寸_新疆深山藏着一个村庄,至今未通水电,村民买太阳能板自行发电...

    芒果旅行日记:新疆深山藏着一个村庄,至今未通水电,村民买太阳能板自行发电,电量仅够照明和手机充电,那里曾长期与世隔绝,风景绝美宛如世外桃源. 这个村庄叫琼库什台,位于新疆伊犁州特克斯县,是一个哈萨克族 ...

  2. 太阳能板如何串联_太阳能光伏系统单晶和多晶模组的差异?农村家庭自用如何科学选择...

    太阳能光伏想必大家都耳熟能详,因其环保且属于可再生能源,目前在农村很多居民屋顶都已经铺设了光伏发电系统,即节省了电费开支又能并入国家电网,所以近些年来我国的光伏产业得到了很好的发展,是目前发展最快的清 ...

  3. 【知识】太阳能板行业生产加工步骤(超详细)

    1.太阳能板车间操作流程: 电池片切片→电池片测试→电池片选片→焊片→串片→叠层→EL测试→层压→组边框→清洗→打胶上盒→接线→闪光测试→包装. 2.电池片切片操作流程: 根据客户订单要求,在连接切片 ...

  4. 太阳能板如何串联_还在犹豫用不用太阳能灯?这些分析让你少花钱,更省钱。...

    上次发了小编自己制作花园地灯的视频和文章后,有朋友疑问,为什么不使用太阳能灯,其实小编花园里都有,也有做过比较.今天把多年的心得分享给大家,从安装.使用范围.和成本几个方面给大家提供参考,以便大家选择 ...

  5. 弹性板计算和板带划分计算_计算双面太阳能板背面太阳辐射的新方法

    图片来源: Nextracker 土耳其中东技术大学(METU)和古穆萨内大学(Gumushane University)的研究人员,开发出一种计算双面太阳能组件背面太阳辐射的新方法.在最近发表在&l ...

  6. parallels desktop 缺少组件_厦门100W5折电脑太阳能光伏组件,100W293mm*418mm*70mmMP4车载太阳能板...

    深圳市迪晟能源技术有限公司为您详细解读mDFIGg厦门100W5折电脑太阳能光伏组件的相关知识与详情,太阳能电池又称为"太阳能芯片"或"光电池",是一种操纵太阳 ...

  7. 文献阅读07期:智网中动态电价对太阳能板普及的影响

    [ 文献阅读·能源 ] Techno-economic analysis of the impact of dynamic electricity prices on solar penetratio ...

  8. 基于51单片机的太阳能板追光控制串口上报系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.支持手动/自动两种模式 2.自动模式下,系统实时监测当前各个方位的光强信息,并通过串口上报 3.自动模式下,通过判断各方位的光强,转动步进电机 ...

  9. 基于Arduino的太阳能板追光装置设计

    本装置使用光敏电阻,暗电阻几乎达到1MΩ,强光条件下只有几百Ω,因此我们串联1K可调电阻进行限流分压,否则光敏电阻电阻过低近似导通会烧坏东西吧 为了适应环境的变化,我采用了可调电阻.而且光敏电阻可能因 ...

最新文章

  1. 我,斯坦福AI读博,李飞飞是师娘,5年5篇顶会论文,依然一度抑郁怀疑人生
  2. 20天拿到美团快手小米搜狐跟谁学offer
  3. Developer Express XtraGrid使用技巧
  4. 分类素材(part1)--Python与机器学习实战
  5. 75. 颜色分类 golang
  6. [转]Oh My Zsh,安装,主题配置
  7. 【英语学习】【Daily English】U06 Shopping L04 I like everything aboutit but the price.
  8. python正则表达式匹配模式屠夫之桥_小甲鱼零基础入门Python学习视频+全套源码课件 Python视频教程 96讲...
  9. Android开发笔记(六十六)自定义对话框
  10. Android Binder 学习中几个问题
  11. VMwarePro16 安装 Win7+BurpSuite
  12. Android版本控制软件之SVN
  13. outlook 2016 添加126邮箱教程
  14. 系统的可靠性分析与设计---可靠性的概述
  15. CRC-16/CCITT算法实现
  16. 【Python例】利用 python 进行用户画像词云图的生成 --- wordcloud
  17. linux who命令功能,Linux who命令详解
  18. mov,lea指令的区别
  19. 计算机相近相关专业职称,电子与智能化工程相关专业职称包括计算机、电子、通信、自动化、...
  20. oracle 压测工具 ld,ORACLE压力测试工具

热门文章

  1. 查询数据库中的重复数据记录
  2. length,length(),size()详解及区别
  3. 高中计算机应用基础试题及答案,春学期职业高中计算机应用基础试卷
  4. 射频测试 —— 蓝牙定频测试1
  5. javaScript(ES5)中想方设法继承家产的方式详解
  6. R数据分析:生存分析的列线图的理解与绘制详细教程
  7. python内置函数返回元素个数_python内置函数列表(list)
  8. Keep能一直“keep”吗?
  9. 打破 FOXMAIL 疯狂占用磁盘读写资源的魔障
  10. rbf神经网络matlab代码_【新书推荐】【2008.06】机器人控制系统的设计与MATLAB仿真(刘金琨)...