存在一个m*n的二维数组,其成员取值范围为0或1。其中值为1的成员具备扩散性,

每经过1S,将上下左右值为0的成员同化为1。

二维数组的成员初始值都为0,将第[i,j]和[k,l]两个位置上元素修改成1后,

求矩阵的所有元素变为1需要多长时间。

输入描述:

前两个数是矩阵m*n,中间两个数是第一个点的坐标,最后两个数是第二个点的坐标

其中这两个点初始为1,其他点初始为0

输出描述:

输出矩阵的所有元素变为1所需要秒数。

示例1:

输入

4,4,0,0,3,3

输出

3

let str = '4,4,0,0,3,3'
let strArr = str.split(',')
let m =parseInt(strArr[0]),n=parseInt(strArr[1])
let one1 = strArr[2],one2 = strArr[3]
let two1 = strArr[4],two2 = strArr[5]
let arr = []
for(let i=0;i<m;i++){
    let item = []
    for(let o=0;o<n;o++){
        item.push(0)
    }
    arr.push(item)
}
arr[one1][one2] = 1
arr[two1][two2] = 1
let time = 0
test()
console.log(time);

function test(){
    while (!checkOver()){
        let arr2 = JSON.parse(JSON.stringify(arr))
        for(let i=0;i<arr.length;i++){
            for(let o=0;o<arr[i].length;o++){
                if(arr[i][o]===1){
                    arr2[i][o]=1
                    // 上
                    if(i-1>=0){
                        arr2[i-1][o] = 1
                    }
                    // 下
                    if(i+1<=arr.length-1){
                        arr2[i+1][o] = 1
                    }
                    // 左
                    if(o-1>=0){
                        arr2[i][o-1] = 1
                    }
                    // 右
                    if(o+1<=arr[i].length-1){
                        arr2[i][o+1] = 1
                    }
                }
            }
        }
        arr = arr2
        time++
    }
}
function checkOver(){
    for(let i of arr){
        for(let o of i){
            if(o===0){
                return false
            }
        }
    }
    return true
}