华为OD机试详解:相同数字组成图形的周长计算与实现(C++/Java/Python/JavaScript多语言版)
在华为OD机试中,图形处理与矩阵遍历是常考的题型之一。本文将详细介绍一道典型的华为OD机试题目——“相同数字组成图形的周长计算”。题目要求根据输入的矩阵内容,计算相同数字组成的实心图形的周长。为了帮助考生更好地掌握解题思路,本文提供了详细的解题分析,并使用C++、Java、Python和JavaScript四种主流编程语言进行实现。
题目描述
我们有一个 64 × 64 的矩阵,每个元素初始值为0,现在矩阵内填充了若干数字,相同数字在矩阵中组成了一个或多个实心图形。每个数字的实心图形可以通过相邻的单元格(上下左右相邻)连接而成。题目要求我们根据输入的数据,计算每个数字对应的实心图形的周长。
输入描述
- 第一行输入N,表示有N个数字组成的图形,
N > 0
且N < 64 × 64
。 - 接下来的N行,每行代表一个图形:
- 每行的第一个数字表示填充到矩阵中的数字。
- 后续每两个数字表示矩阵中需要填充该数字的坐标,依次给出行列号。