当前位置: 首页 > news >正文

太阳能板最大面积

一、题目描述

给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。

但航天器不同位置的支柱长度不同,太阳能板的安装面积受限于最短一侧的那根支柱长度。

现提供一组整形数组的支柱高度数据,假设每根支柱间距离相等为1个单位长度,计算如何选择两根支柱可以使太阳能板的面积最大。

二、输入输出描述

输入描述
  • 一行由逗号分隔的整数,表示支柱高度。
输出描述
  • 一个整数,表示最大太阳能板面积。

三、示例

输入

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

输出25
说明10米高支柱和5米高支柱之间宽度为5,高度取小的支柱高也是5,面积为25。
任取其他两根支柱所能获得的面积都小于25。
所以最大的太阳能板面积为25。

四、解题思路

1. 核心思想

使用双指针法从两端向中间贪心收缩,每次移动较矮的一侧指针,在遍历过程中计算并记录最大面积,用 O (n) 时间复杂度找到最优解。

2. 问题本质分析

这是一个最优面积求解问题

  • 容器面积公式:面积 = 宽度 × 两侧高度的较小值
  • 约束:只能选择两条竖线
  • 目标:面积最大化本质是:利用贪心策略减少无效遍历,高效找到最优两条线

3. 核心逻辑

  1. 初始状态:左指针在最左,右指针在最右(宽度最大)。
  2. 面积计算:每次用两指针间距作为宽度,较矮高度作为高计算面积。
  3. 贪心移动一定移动高度更矮的指针(因为移动高侧无法让面积变大)。
  4. 记录最大值:遍历过程中不断更新最大面积。

4. 步骤拆解

  1. 输入处理

    • 读取逗号分隔的输入字符串
    • 转为整数数组height
  2. 双指针初始化

    • left = 0(最左)
    • right = 数组长度-1(最右)
    • maxArea = 0
  3. 循环收缩指针

    • 计算当前宽度、高度、面积
    • 更新最大面积
    • 移动较矮一侧的指针
  4. 输出结果

    • 输出遍历得到的最大面积

五、代码实现

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 读取输入并按逗号分割 String[] strs = sc.next().split(","); int[] height = new int[strs.length]; for (int i = 0; i < strs.length; i++) { height[i] = Integer.parseInt(strs[i]); } // 双指针 int left = 0; int right = height.length - 1; long maxArea = 0; // 用long防止溢出 while (left < right) { int w = right - left; int h = Math.min(height[left], height[right]); long area = (long) w * h; // 更新最大面积 if (area > maxArea) { maxArea = area; } // 移动较矮的指针 if (height[left] < height[right]) { left++; } else { right--; } } System.out.println(maxArea); } }
http://www.jsqmd.com/news/691513/

相关文章:

  • 【数据处理与统计分析】3.Pandas介绍以及使用
  • 健身打卡信用上链程序,打卡记录不能篡改,可用于自律证明,公司激励,社群挑战,杜绝P图作弊。
  • 探讨2026年膨润土知名厂家,信阳同创膨润土厂服务如何 - mypinpai
  • Oumuamua-7b-RP步骤详解:Web UI中调整Top-k=30提升角色专注度实操
  • TVA时代企业IT工程师的转型之路(七)
  • 如何选择美白防晒霜品牌?2026年4月推荐评测口碑对比知名户外运动防汗防水黑 - 品牌推荐
  • Qwen3-4B-Thinking多场景落地:新能源电池技术文档智能问答系统
  • trimesh检测物体相撞
  • 从MP3到WAV:给嵌入式开发者的音频格式转换实战指南(附C语言代码与内存优化技巧)
  • 写代码时频繁打喷嚏?别信“有人想你”,这是身体系统的预警日志
  • 如何高效重置JetBrains IDE试用期:专业开发者的完整指南
  • 多品牌PLC兼容方案:C#上位机同时对接西门子、三菱、欧姆龙设备
  • 膨润土定制服务商家信阳同创膨润土厂费用怎么收 - 工业设备
  • 跳出“暴力美学”:一个模块化、类脑的大模型架构构想(大模型的思考:三)
  • Claude Code CLI常见生产环境指令开发项目入门学习0-1
  • CSRF与SSRF:Web安全漏洞攻防解析
  • NVIDIA Profile Inspector 深度指南:解锁显卡隐藏性能的专业调校工具
  • 安卓播放器选型实战:从VLC、ExoPlayer到GSYVideoPlayer,我是如何为RTSP直播项目做决定的
  • 系统盘扩容方案:无损分区调整与系统迁移全流程
  • Oumuamua-7b-RP惊艳表现:在用户插入英语单词时自动切换混合语应答模式
  • HsMod:基于BepInEx的炉石传说深度定制框架技术解析
  • Red Panda Dev-C++:告别配置烦恼,3分钟开启高效C++编程
  • 共享物品租借合约程序,借出归还自动记录,超时自动计算,损坏按规则赔偿,无需人工盯守。
  • ChatGPT在学术研究中的高效应用与数据分析技巧
  • 人形机器人模仿学习
  • 链家二手房数据自动化点选验证码
  • 2026年4月韩国留学机构推荐:五家口碑服务评测对比顶尖高考后迷茫升学规划 - 品牌推荐
  • 2026年深圳婚纱摄影推荐,三川摄影满意度、实力与信任度大剖析 - 工业品牌热点
  • 论文格式零翻车!PaperXie 4000 + 高校模板一键套用,毕业定稿快人一步
  • 哔哩下载姬DownKyi:5分钟掌握B站视频下载的终极免费方案