wordpress对比dedecms,新站整站排名优化火速公司,手机app软件开发定制,怎么做优惠网站分析
思路
1.输入读取#xff1a;读取网格的维度(M#xff0c;N)和像素值到一个二维数组中。 2.迭代:遍历二维数组中的每个单元格。 3.边界检测:对于每个像素值为1的单元格,检查其八个相邻的单元格。如果任何相邻单元格的像素值为5,则增加边界计数。 4,边界计数调整:由于每…分析
思路
1.输入读取读取网格的维度(MN)和像素值到一个二维数组中。 2.迭代:遍历二维数组中的每个单元格。 3.边界检测:对于每个像素值为1的单元格,检查其八个相邻的单元格。如果任何相邻单元格的像素值为5,则增加边界计数。 4,边界计数调整:由于每个边界被计算两次(分别与相邻的两个像素1相关联),需要将计数调整为实际的边界数量。 5,输出结果:输出最终的像素1代表的物体的边界数量。 这个算法基于遍历和相邻像素的检查以计算像素1代表的物体的边界数量。
示例1
输入 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 1 1 1 1 1 1 1 1 1 1 1 1 5 输出 2
示例2
输入 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 1 1 1 1 1 5 1 1 1 1 1 1 1 输出 1 代码优化
import java.util.Scanner;public class 图像物体边界 {public static int row;public static int col;public static int[][] matrix;public static void main(String[] args) {Scanner in new Scanner(System.in);row in.nextInt();col in.nextInt();matrix new int[row][col];for (int i 0; i row; i) {for (int j 0; j col; j) {matrix[i][j] in.nextInt();}}for (int i 0; i row; i) {for (int j 0; j col; j) {if (matrix[i][j] 5) {if (i 0 j 0) matrix[i - 1][j - 1] 0;if (i 0) matrix[i - 1][j] 0;if (i 0 j col - 1) matrix[i - 1][j 1] 0;if (j 0) matrix[i][j - 1] 0;if (i 0 j col - 1) matrix[i][j 1] 0;if (i row - 1 j 0) matrix[i 1][j - 1] 0;if (i row - 1 j col - 1) matrix[i 1][j 1] 0;}}}int count 0;for (int i 0; i row; i) {for (int j 0; j col; j) {if (matrix[i][j] 0) {count;matrix[i][j] -1;countBorder(i, j);}}}System.out.println(count);}public static void countBorder(int i, int j) {if (i 0 matrix[i - 1][j] 0) {matrix[i - 1][j] -1;countBorder(i - 1, j);}if (i 0 j 0 matrix[i - 1][j - 1] 0) {matrix[i - 1][j - 1] -1;countBorder(i - 1, j - 1);}if (i 0 j col - 1 matrix[i - 1][j 1] 0) {matrix[i - 1][j 1] -1;countBorder(i - 1, j 1);}if (j 0 matrix[i][j - 1] 0) {matrix[i][j - 1] -1;countBorder(i, j - 1);}if (j col - 1 matrix[i][j 1] 0) {matrix[i][j 1] -1;countBorder(i, j 1);}if (i row - 1 matrix[i 1][j] 0) {matrix[i 1][j] -1;countBorder(i 1, j);}if (i row - 1 j 0 matrix[i 1][j - 1] 0) {matrix[i 1][j - 1] -1;countBorder(i 1, j - 1);}if (i row - 1 j col - 1 matrix[i 1][j 1] 0) {matrix[i 1][j 1] -1;countBorder(i 1, j 1);}}
}277.【华为OD机试】图像物体的边界深度优先搜索 (DFS)—JavaPythonCJS实现_图像物体的边界华为od-CSDN博客