在一个n×n的网格游戏中,可以放置由4个小方块组成的大方块(类似俄罗斯方块)。网格中有k个位置不能放置方块,这些位置通过坐标给出。我们需要计算在不重叠、不超出边界的情况下,最多可以放置多少个大方块。输入的第一行包含n和k,接下来有k行给出不能放置方块的坐标对(y,x)。输出结果为最多能放下的大方块数量。举例来说,对于输入2 0,输出为1;对于输入4 3,输出为2;而输入3 3则输出为0。
本题非常类似于:LeetCode 1240. 铺瓷砖。
采用深度优先搜索(DFS)和回溯法来解决大方块的摆放问题。我们通过递归遍历每个位置,判断是否可以放置一个 2x2 的大方块。
俄罗斯方块游戏可以看成一个 n×n 的正方形网格,行号和列号均从 0 开始编号。游戏中只出现一种“大方块”,它由 4 个基础小方格组成,形状为 2×2 的正方形。网格中某些格子可能被标记为不可用。现在需要在网格上放置尽可能多的这种 2×2 大方块,并同时满足以下限制:
请计算最多可以同时放置多少个这样的大方块。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册