2023Q1华为OD机考题及解析:图像物体的边界问题 | Java Python JavaScript思路代码解析|C语言专栏持...

需积分: 0 22 下载量 131 浏览量 更新于2023-11-24 3 收藏 1.43MB PDF 举报
2023年第一季度最全华为OD机考题库包括思路、Java、Python、JS三种代码。每道题目都包含原题、思路解析和三种编程语言的解题代码。这是2023华为OD机试(B卷),共200分,包含Java、JavaScript、C和Python语言题目。 题目一是关于图像物体的边界问题。题目描述:给定一个二维数组M行N列,数组中的数字代表图像的像素,简化起见,只包含像素1和5两种。每个物体的边界由与像素5相邻的像素1的格子组成,边界相邻的格子归属于同一个边界,相邻需要考虑8个方向(上、下、左、右、左上、左下、右上、右下)。地图规格约束为0 < M < 1000,0 < N < 100。 题目一的示例图形中,与像素5的格子相邻的像素1的格子有:(0,0)、(0,1)、(0,2)、(1,0)、(1,2)、(2,0)、(2,2)、(4,4)、(4,5)、(5,4)。其中,(0,0)、(0,1)、(0,2)、(1,0)、(1,2)、(2,0)、(2,1)、(2,2)相邻,为1个边界;(4,4)、(4,5)、(5,4)相邻,为1个边界。所以,该示例图形的边界个数为2。 题目二的示例图形中,与像素5的格子相邻的像素1的格子为:(0,0)、(0,1)、(0,2)、(1,0)、(1,2)、(2,0)、(2,1)、(2,2)、(3,3)、(3,4)、(3,5)、(4,3)、(4,5)、(5,3)、(5,4)、(5,5)。这些边界相邻,所以边界个数为1。 输入描述:第一行为行数M和列数N。从第二行开始,是M行N列的像素的二维数组,仅包含像素1和5。输出描述:输出像素1代表的物体的边界个数。如果没有边界,则输出0(例如,只存在像素1或只存在像素5)。 示例输入:6 6 1 1 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 1 1 1 5 1 1 1 1 1 1 1 1 示例输出:2