华为OD机试真题——矩形绘制(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

06-01 1521阅读

华为OD机试真题——矩形绘制(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 200分 题型

本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式;
并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析;
本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分享》

华为OD机试真题《矩形绘制》:


文章快捷目录

题目描述及说明

Java

python

JavaScript

C

GO


题目名称:矩形绘制


知识点:字符串、集合操作、逻辑处理
时间限制:1秒
空间限制:256MB
限定语言:不限


题目描述

实现一个简单的绘图模块,绘图模块仅支持矩形的绘制和擦除。

  • 当新绘制的矩形与已有图形重叠时,对图形取并集;
  • 当新擦除的矩形与已有图形重叠时,对图形取差集。
    给定一系列绘制和擦除操作,计算最终图形的面积。

输入描述
第一行为操作数N,接下来的N行格式为:

  • d x1 y1 x2 y2:d表示绘制操作,(x1,y1)为矩形左上角坐标,(x2,y2)为右下角坐标;
  • e x1 y1 x2 y2:e表示擦除操作,坐标含义同上。
    坐标均为整数且范围在[-100, 100]内,用例保证坐标有效性。

输出描述
输出最终图形的面积。

示例1
输入:

2  
d 0 2 2 0  
d -1 1 1 -1  

输出:
7
华为OD机试真题——矩形绘制(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

示例2
输入:

2  
d 0 2 2 0  
e -1 1 1 -1  

输出:
3
华为OD机试真题——矩形绘制(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

说明

  • 核心思路:将矩形分解为小方格(如1x1单元),通过集合存储有效方格,最终统计总数即为面积。
  • 关键操作:遍历矩形范围内的所有小格,根据操作类型(d/e)增减集合内容。

Java

问题分析

我们需要处理一系列的矩形绘制和擦除操作,最终计算剩余图形的面积。每次操作会影响当前图形的覆盖区域,绘制操作会合并重叠区域,而擦除操作会移除重叠区域。核心在于高效表示和处理这些矩形的覆盖区域。

解题思路

  1. 小方格分解:将每个矩形分解为1x1的小方格,使用集合存储这些方格。
  2. 并集与差集操作:绘制操作将方格加入集合,擦除操作将方格移出集合。
  3. 面积计算:最终集合的大小即为剩余方格的个数,即面积。

代码实现

import java.util.HashSet;
import java.util.Scanner;
public class Main {
   
    public static void main(String[] args) {
   
        Scanner scanner = new Scanner(System.in);
        int N = Integer.parseInt(scanner.nextLine()); // 读取操作数
        HashSet set = new HashSet(); // 存储所有被覆盖的格子
        for (int i = 0; i 
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码