矩阵中非1的元素个数
题目描述:
存在一个m*n的二维数组,其成员取值范围为0,1,2。其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。而值为2的元素,免疫同化。将数组所有成员随机初始化为0或2,再将矩阵的[0,0]元素修改成1,在经过足够长的时间后求矩阵中有多少个元素是0或2(即0和2数量之和)
输入输出描述:
输入描述:
输入的前两个数字是矩阵大小。后面是数字矩阵内容
输出描述:
返回矩阵中非1的元素个数
示例1:
输入:
4 4
0 0 0 0
0 2 2 2
0 2 0 0
0 2 0 0
输出:
9
说明:
输入数字前两个数字是矩阵大小。后面的数字是矩阵内容。
起始位置(0,0)被修改为1后,最终只能同化矩阵为:
1 1 1 1
1 2 2 2
1 2 0 0
1 2 0 0
所以矩阵中非1的元素个数为9
解题思路:
代码:
static int[][] matrix;
static boolean[][] visited;
static int[][] directions = new int[][] {
{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
public static void main(String[] args) {
Scanner s