LeetCode刷题13-太阳能板最大面积
package com.example.demo.leetcode.case202208; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Scanner; import java.util.stream.Collectors; /** * 功能描述 * * @author ASUS * @version 1.0 * @Date 2022/8/6 */ public class Main2022080609 { /* 给航天器一侧加装长方形和正方形的太阳能板(图中的斜线区域) 需要先安装两个支柱(图中的黑色竖条) 再在支柱的中间部分固定太阳能板 但航天器不同位置的支柱长度不同 太阳能板的安装面积受限于最短一侧的那支支柱的长度 现提供一组整型数组的支柱高度数据 假设每个支柱间的距离相等为一个单位长度 计算如何选择两根支柱可以使太阳能板的面积最大
输入描述 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 */ public static void main(String[] args) { // 获取输入信息 Scanner scanner = new Scanner(System.in); // 柱子的高度是无序的 从小到大排序 List<Integer> list = Arrays.asList(scanner.nextLine().split(",")) .stream() .sorted(Comparator.comparingInt(Integer::parseInt)) .map(Integer::valueOf) .collect(Collectors.toList()); // 枚举 遍历求最大面积 int area = 0; for (int i = 0; i < list.size(); i++) { for (int j = i + 1; j < list.size(); j++) { // list从小到大排序过得 int newAarea = Math.multiplyExact(list.get(i), (j - i)); if (newAarea >= area) { area = newAarea; } } } System.out.println(area); } }
本文来自博客园,作者:chch213,转载请注明原文链接:https://www.cnblogs.com/chch213/p/16558026.html
分类:
LeetCode
标签:
java
, LeetCode刷题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探