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

华为OD E卷(100分)42-矩形相交面积

   前言

        工作了十几年,从普通的研发工程师一路成长为研发经理、研发总监。临近40岁,本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作,愁肠百结。为了让自己有点事情做,也算提高一下自己的编程能力,无聊之余打算用一些大厂的编程题练练手。希望通过这些分享能够帮到一些人,也希望能和看到此文的大神们沟通交流,提升自己,更希望在此期间能够找到一份理想的工作。

题目描述

       在平面直角坐标系中,给出 3 个矩形的位置信息。每个矩形由左上角坐标 (x,y) 和宽度  h 表示。
矩形的边平行于坐标轴,宽度向右延伸,高度向下延伸。请计算这 3 个矩形重叠部分的面积。

输入

输入共 3 行,每行包含 4 个整数 
x、y、w、h,分别表示一个矩形的左上角 x 坐标、左上角 y 坐标、宽度和高度。

输出

        输出一个整数,表示 3 个矩形重叠部分的面积。如果没有重叠,则输出 0。

示例 

示例1

输入
1 6 4 4
3 5 3 4
0 3 7 3
输出

2
说明:

三个矩形分别为:
1.  (1,6) 到  (5,2)
2.  (3,5) 到  (6,1)
3.  (0,3) 到 (7,0) 重叠部分面积为 2

数据范围

  • −1000≤x,y<1000
  • w,h 为正整数

解题思路

       矩阵填充。

题解

Java实现

package huawei.e100;

import java.util.Arrays;
import java.util.Scanner;

/**
* @author arnold
* @date 2024年12月27日
* 矩形相交面积

*/
public class T42 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			int[][] data = new int[2000][2000];
			for (int i = 0; i < data.length; i++) {
				Arrays.fill(data[i], 0);
			}
			for (int i = 0; i < 3; i++) {
				int x = sc.nextInt();
				int y = sc.nextInt();
				int w = sc.nextInt();
				int h = sc.nextInt();
				for(int m = x; m< x+w; m++) {
					//高度向下延伸
					for(int n = y; n > y-h; n--) { 
						data[m][n] += 1;
					}
				}
			}
			int area = 0;
			for (int i = 0; i < data.length; i++) {
				area += Arrays.stream(data[i]).filter(a -> a==3).count();
			}
			System.out.println(area);
		}

	}

}


http://www.kler.cn/a/464792.html

相关文章:

  • 气膜球幕:引领元宇宙时代的科技与艺术光影盛宴—轻空间
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之9 重新开始 之2 “三端架构”各自的“中间区”:三支决策的肯定/待定/否定
  • 关于PINN进一步的探讨
  • Framebuffer 驱动
  • 第15章 汇编语言--- 数组与指针
  • 【蓝桥杯比赛-C++组-经典题目汇总】
  • webserver的http实现
  • MATLAB中whitespacePattern函数用法
  • maya 删除 Ctrl + Delete vs Delete
  • Python实现Excel行列转换
  • 算法 class 005 (对数器C语言实现)
  • 第一次作业
  • Java项目常见基础问题汇总(6)
  • 基于Golang的网络安全靶场设计与实现
  • 利用深度学习进行系统健康监控:智能运维的新纪元
  • Vue 中el-table-column 进行循环,页面没渲染成功
  • 并联带阻滤波器带通滤波器对幅值和相位的影响(IIR)
  • C++ 设计模式:组合模式(Composite Pattern)
  • QT----------多媒体
  • HarmonyOS Next ArkUI @State @Prop @Link @Provide @Consume笔记
  • EasyExcel简介和读写操作
  • IoC设计模式详解:控制反转的核心思想
  • PyTorch 中 coalesce() 函数详解与应用示例
  • Linux之ARM(MX6U)裸机篇----6.BSP工程管理实验
  • Vue 自定义指令
  • 全国知名网络安全赛事西湖论剑·杭州网络安全技能大赛启动报名