力扣每日一题:2132. 用邮票贴满网格图(2023-12-14)

力扣每日一题
题目:2132. 用邮票贴满网格图
2023-12-14.png
日期:2023-12-14
用时:38 m 32 s
思路:使用前缀和+差分,只是往常是一维,现在变二维了,原理差不多
时间:22ms
内存:98.24MB
代码:

class Solution {
   
    public boolean possibleToStamp(int[][] grid, int stampHeight, int stampWidth) {
   
        int xl = grid.length;
        int yl = grid[0].length;

        // 前缀和
        int[][] sum = new int[xl+1][yl+1];
        for(int i=1;i<=xl;i++){
   
            for(int j=1;j<=yl;j++){
   
                sum[i][j] = sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+grid[i-1][j-1];
            }
        }

        // 差分
        int[][] cnt = new int[xl+2][yl+2];
        for(int xStart=stampHeight;xStart<=xl;xStart++){
   
            for(int yStart=stampWidth;yStart<=yl;yStart++){
   
                int xEnd = xStart-stampHeight+1;
                int yEnd = yStart-stampWidth+1;
                if(sum[xStart][yStart]+sum[xEnd-1][yEnd-1]-sum[xStart][yEnd-1]-sum[xEnd-1][yStart]==0){
   
                    cnt[xEnd][yEnd]++;
                    cnt[xStart+1][yStart+1]++;
                    cnt[xEnd][yStart+1]--;
                    cnt[xStart+1][yEnd]--;
                }
            }
        }

        // 判断单元格是否能放邮戳
        for(int i=1;i<=xl;i++){
   
            for(int j=1;j<=yl;j++){
   
                cnt[i][j] += cnt[i][j-1]+cnt[i-1][j]-cnt[i-1][j-1];
                if(grid[i-1][j-1]==0&&cnt[i][j]==0){
   
                    return false;
                }
            }
        }

        return true;
    }
}

相关推荐

  1. LeetCode 2132. 邮票网格

    2023-12-18 00:10:04       52 阅读
  2. 2023.12.16每日

    2023-12-18 00:10:04       64 阅读
  3. 2023.12.17每日

    2023-12-18 00:10:04       64 阅读
  4. 2023.12.20每日

    2023-12-18 00:10:04       71 阅读
  5. LeetCode 每日 2023/12/11-2023/12/17

    2023-12-18 00:10:04       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-18 00:10:04       73 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-18 00:10:04       78 阅读
  3. 在Django里面运行非项目文件

    2023-12-18 00:10:04       63 阅读
  4. Python语言-面向对象

    2023-12-18 00:10:04       73 阅读

热门阅读

  1. Python中开启线程或进程

    2023-12-18 00:10:04       53 阅读
  2. CSS尺寸设置单位?

    2023-12-18 00:10:04       54 阅读
  3. [C语言] 使用数组模拟实现malloc

    2023-12-18 00:10:04       51 阅读
  4. alibaba fastjson GET List传参 和 接收解析

    2023-12-18 00:10:04       53 阅读
  5. [Unity] 基于迭代器的协程底层原理详解

    2023-12-18 00:10:04       61 阅读