题目:
开心消消乐
题目描述:
给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。矩阵示例如 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 现需要将矩阵中所有的1进行反转为0,规则如下: 1)当点击一个1时,该1变被反转为0,同时相邻的上、下、左、右,以及左上、左下、右上、右下8个方向的1 (如果存在1) 均会自动反转为0: 2)进一步地,一个位置上的1被反转为0时,与其相邻的8个方向的1 (如果存在1)均会自动反转为0; 按照上述规则示例中的矩阵只最少需要点击2次后,所有值均为0。请问,给定一个矩阵,最少需要点击几次后,所有数字均为0?
输入描述:
第一行为两个整数,分别表示矩阵的行数N和列数M,取值范围均为[1,100] 接下来N行表示矩阵的初始值,每行均为M个数,取值范围[0,1] 输出描述: 输出一个整数,表示最少需要点击的次数
示例1 输入: 3 3 1 0 1 0 1 0 1 0 1 输出: 说明: 上述样例中,四个角上的1均在中间的1的相邻8个方向上,因此只需要点击一次即可
public class Demo11 {
public static void main(String[] args) {
// 用二维数组存矩阵数字, 用递归计算,把8个方向的1数字反转程0
Scanner sc = new Scanner(System.in);