Big Bomb(矩阵周边变化)

给你一个只有0与1的矩阵,当你释放一个炸弹进这个矩阵时候,若旁边有1则连锁Bomb,将1置换成0

点击查看代码
    public class Boom
    {
        public static int BigBoom(int[][] m,int row,int col)
        {
            if(m==null) return 0;
            int h=m.Length;
            int w=m[0].Length;
            int count=0; //记录还剩下多少炸弹
            m[row][col]=0;
            Queue<int> q=new Queue<int>(); 
            q.Enqueue(row);
            q.Enqueue(col);
            int[][] dict=new int[][]
            {
                new int[]{-1,0},
                new int[]{1,0},
                new int[]{0,-1},
                new int[]{0,1}
            };
            while(q.Count>0)
            {
                int curr=q.Dequeue();
                int curc=q.Dequeue();
                foreach (var e in dict)
                {
                    int nr=curr+e[0];
                    int nc=curc+e[1];
                    if(nr>=0&&nr<h&&nc>=0&&nc<w)
                    {
                        if(m[nr][nc]==1)
                        {
                          m[nr][nc]=0;
                          q.Enqueue(nr);
                          q.Enqueue(nc);
                        }
                    }
                }
            }

            for(int r=0;r<h;r++)
            {
                for(int c=0;c<w;c++)
                {
                    count+=m[r][c];
                }
            }
            return count;

        }
}
Program.cs
    class Test
    {
    static void Main(string[] arg)
    {
        int[][] m=new int[][]
        {
            new int[]{0,1,1,0,0},
            new int[]{1,1,1,0,0},
            new int[]{1,1,0,0,0},
            new int[]{0,1,1,0,0},
            new int[]{0,0,1,0,0},
            new int[]{0,0,1,1,1},
        };
        View(m);
        var result=Boom.BigBoom(m,0,4);
        View(m);
        System.Console.WriteLine(result);

    }

    static void View(int[][] a)
    {
        foreach (var item in a)
        {
            System.Console.WriteLine(string.Join(",",item));
        }
    }

    }
posted @ 2022-02-16 13:07  Ariaaaaa  阅读(9)  评论(0)    收藏  举报