【卡码网】32. 子矩形的最大面积 <模拟>

news2025/1/21 1:04:15

【卡码网】32. 子矩形的最大面积

给定一个矩形,宽度为 W,高度为 H,现需要对其进行划分。现有一个数组 yCutting 用于表示在水平方向上用于切分矩形的切线位置,另有一个数组 xCutting 表示在垂直方向上用于切分矩形的切线位置。求被切割后的所有子矩形中最大的那块的面积。

输入
第一行 H:矩形的高度
第二行 W:矩形的宽度
第三行:yCutting 数组的长度
第四行:yCutting 数组
第五行:xCutting 数组的长度
第六行:xCutting 数组

输出
一个整数,表示最大的那块子矩形的面积。

在这里插入图片描述

样例输入

5
4
3
1 2 4
2
1 3

样例输出

4

提示
0 < H < 50000;
0 < W < 50000;
0 < yCutting.length < 100;
0 < xCutting.length < 100.

题解

分别求宽和长中切割的最大区间,把俩个最大区间相乘

import java.lang.*;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 读取矩形的高度和宽度
        int H = in.nextInt();
        int W = in.nextInt();

        // 读取水平 yCutting 数组的长度和内容
        int yCuttingLength = in.nextInt();
        int[] yCutting = new int[yCuttingLength];
        for (int i = 0; i < yCuttingLength; i++) {
            yCutting[i] = in.nextInt();
        }
        // 读取垂直 xCutting 数组的长度和内容
        int xCuttingLength = in.nextInt();
        int[] xCutting = new int[xCuttingLength];
        for (int i = 0; i < xCuttingLength; i++) {
            xCutting[i] = in.nextInt();
        }

        // 对水平和垂直切割数组进行排序
        Arrays.sort(yCutting);
        Arrays.sort(xCutting);

        // 计算水平切割区间的最大值
        int maxSubX = getMaxInterval(yCutting, H);

        // 计算垂直切割区间的最大值
        int maxSubY = getMaxInterval(xCutting, W);

        // 将两个方向上的最大切割区间相乘即得到最大子矩形的面积
        int maxSubArea = maxSubX * maxSubY;

        System.out.println(maxSubArea);
    }

    // 计算最大切割区间
    private static int getMaxInterval(int[] cuttingArray, int length) {
        // 默认第一个切割区间从边界到第一个切割点的距离
        int maxInterval = cuttingArray[0];
        // 求最大间隔
        for (int i = 1; i < cuttingArray.length; i++) {
            maxInterval = Math.max(maxInterval, cuttingArray[i] - cuttingArray[i - 1]);
        }

        // 最后一个切割区间从最后一个切割点到边界的距离
        maxInterval = Math.max(maxInterval, length - cuttingArray[cuttingArray.length - 1]);

        return maxInterval;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/895577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python中import模块导入的实现原理

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 Python中import模块导入的实现原理 什么是模块import搜索路径import导入模块的原理图书推荐 专栏&…

springboot异步文件上传获取输入流提示找不到文件java.io.FileNotFoundException

springboot上传文件&#xff0c;使用异步操作处理上传的文件数据&#xff0c;出现异常如下&#xff1a; 这个是在异步之后使用传过来的MultipartFile对象尝试调用getInputStream方法发生的异常。 java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp\to…

【福建事业单位-综合基础知识】01法理学、宪法

这里写目录标题 一、法理知识1.1法的概念1.2法的规范作用1.3、法与道德1.4、法的制定&#xff01;1.5、法是实施 二、宪法2.1 宪法的概念2.2宪法的特征2.3宪法的基本原则2.4 宪法的渊源2.5 宪法的宣誓总结 三、国家基本制度 一、法理知识 1.1法的概念 法是概念是参考项&#…

Nevron 3DChart Crack,可视化界面在运行时可用

Nevron 3DChart Crack,可视化界面在运行时可用 3DChart使用OpenGL 3D图形引擎创建复杂的2D和3D图表&#xff0c;这些图表可以包含静态或动画图像。3DChart包括一个用于生成图表模板的独立应用程序和一个ASP服务器配置实用程序。该组件还包括一个专门设计用于与3DChart集成的工具…

程序员如何利用公网打造低成本轻量化的搜索和下载平台【内网穿透】

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《高效编程技巧》《cpolar》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 公网远程访问本地硬盘文件【内网穿透】 文章目录 公网远程访问本地硬盘文件【内网穿透】前言1. 下载cpolar和Everything软件1.…

突破传统界限:OLED透明屏模组应用拓展到可穿戴设备

OLED透明屏模组作为一种新兴的显示技术&#xff0c;正在引起广泛的关注和应用。其独特的透明性和高质量的图像表现力&#xff0c;使其成为未来视觉体验的重要组成部分。 对此&#xff0c;尼伽将通过探讨OLED透明屏模组的特点、优势以及应用案例&#xff0c;带您了解一下OLED透…

TCP服务器实现—多进程版,多线程版,线程池版

目录 前言 1.存在的问题 2.多进程版 3.多线程版 4.线程池版 总结 前言 在上一篇文章中使用TCP协议实现了一个简单的服务器&#xff0c;可以用来服务端和客户端通信&#xff0c;但是之前的服务器存在一个问题&#xff0c;就是当有多个客户端连接服务器的时候&#xff0c;服…

LeGO-Loam代码解析(二)--- Lego-LOAM的地面点分离、聚类、两步优化方法

1 地面点分离剔除方法 1.1 数学推导 LeGO-LOAM 中前端改进中很重要的一点就是充分利用了地面点,那首先自然是提取 对地面点的提取。 如上图,相邻的两个扫描线束的同一列打在地面上如 点所示,他们的垂直高度差 &#xff0c;水平距离差 &#xff0c;计算垂直高度差和水平高度差…

Windows 10搭建 OpenGL 环境(C++)

1、创建 sdk 目录 IDE使用 Visual Studio 2022&#xff0c;在电脑上创建一个目录&#xff0c;用来存放要使用的 OpenGL 库&#xff0c;后面步骤中生成的各种库文件&#xff0c;都会放到这个目录&#xff0c;用于配置 VS 项目模板&#xff0c;本文将使用这个目录&#xff1a;F:…

【快应用】如何避免通知栏提示快应用一直获取地理位置

【关键词】 地理位置、subscribe、unsubscribe 【问题背景】 快应用中调用geolocation.subscribe接口获取地理位置&#xff0c;即使在定位完成后&#xff0c;会在通知栏一直显示某某快应用在获取地理位置&#xff0c;为了避免用户认为一直在获取他的位置&#xff0c;导致用户…

原码、补码、反码

一、前置概念 计算机底层存储数据时使用的是二进制数字&#xff0c;但是计算机在存储一个数字时并不是直接存储该数字对应的二进制数字&#xff0c;而是存储该数字对应二进制数字的补码。所以接下来我们需要来了解一下原码、反码和补码。 那么再了解原码、反码、补码之前&…

自动执行探索性数据分析 (EDA),更快、更轻松地理解数据

一、说明 EDA是 exploratory data analysis (探索性数据分析 )的缩写。所谓EDA就是在数据分析之前需要对数据进行以此系统性研判&#xff0c;在这个研判后&#xff0c;得到基本的数据先验知识&#xff0c;在这个基础上进行数据分析。本文将在R语言和python语言的探索性处理。 摄…

Hadoop学习:深入解析MapReduce的大数据魔力之数据压缩(四)

Hadoop学习&#xff1a;深入解析MapReduce的大数据魔力之数据压缩&#xff08;四&#xff09; 4.1 概述1&#xff09;压缩的好处和坏处2&#xff09;压缩原则 4.2 MR 支持的压缩编码4.3 压缩方式选择4.3.1 Gzip 压缩4.3.2 Bzip2 压缩4.3.3 Lzo 压缩4.3.4 Snappy 压缩4.3.5 压缩…

蔡司关注全民运动眼健康:与蔡司智锐镜片KEEP住视力健康

众所周知&#xff0c;运动是对我们身体最大的投资&#xff0c;但是对于视力有问题的消费者来说&#xff0c;不合适的眼镜无疑是运动路上的绊脚石&#xff0c;跑步运动时眼镜总是往下掉&#xff0c;不仅没有相对稳定的视野&#xff0c;还特别没安全感&#xff0c;由此可见一副优…

1.物联网LWIP网络,TCP/IP协议簇

一。TCP/IP协议簇 1.应用层&#xff1a;FTP&#xff0c;HTTP&#xff0c;Telent&#xff0c;DNS&#xff0c;RIP 2.传输层&#xff1a;TCP&#xff0c;UDP 3.网络层&#xff1a;IPV4&#xff0c;IPV6&#xff0c;OSPF&#xff0c;EIGRP 4.数据链路层&#xff1a;Ethernet&#…

售后工单管理系统是什么?售后服务管理系统对企业有什么作用?

售后服务管理系统可以提高客户满意度、提升售后服务效率、实现客户关系管理、支持知识库和员工培训、以及数据分析和改进等多种作用&#xff0c;从而帮助企业提高售后服务质量和效率&#xff0c;增强客户忠诚度&#xff0c;提高整体运营效率。 1、集成化信息平台   系统可以实…

基于迁移学习的基础设施成本优化框架,火山引擎数智平台与北京大学联合论文被KDD收录

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 基于迁移学习的基础设施成本优化框架&#xff0c;火山引擎数智平台与北京大学联合论文被KDD收录 近期&#xff0c;第29届国际知识发现与数据挖掘大会&#xff08;A…

android cocoscreator 检测模拟器还是真机

转载至 一行代码帮你检测Android模拟器 具体原理看原博主文章&#xff0c;这里只讲cocoscreator3.6的安卓工程怎么使用 1.新建一个com.lahm.library包&#xff0c;和com.cocos.game同目录&#xff0c;如图示 那四个文件的代码如下&#xff1a; EmulatorCheckUtil类&#…

国产化系统中遇到的视频花屏、卡顿以及延迟问题的记录与总结

目录 1、国产化系统概述 1.1、国产化操作系统与国产化CPU 1.2、国产化服务器操作系统 1.3、当前国产化系统的主流配置 2、视频解码花屏与卡顿问题 2.1、视频解码花屏 2.2、视频解码卡顿 2.3、关于I帧和P帧的说明 3、国产显卡处理速度慢导致图像卡顿问题 3.1、视频延…

【Git】Git中用到的一些命令

Git文件有四种状态&#xff1a; 未跟踪未修改&#xff08;已跟踪&#xff09;已修改&#xff08;已跟踪&#xff09;已暂存&#xff08;已跟踪&#xff09; 通常我们将项目clone下来就会处于已跟踪状态 1、git diff命令 git diff&#xff1a;查看没有暂存的文件更新哪些部分…