Skip to content

LeetCode 每日一题笔记

0. 前言

  • 日期:2025.03.25
  • 题目:3546.等和矩阵分割
  • 难度:中等
  • 标签:数组 链表 哈希表

1. 题目理解

问题描述
给你一个由正整数组成的 m x n 矩阵 grid。你的任务是判断是否可以通过 一条水平或一条垂直分割线 将矩阵分割成两部分,使得:

分割后形成的每个部分都是 非空 的。 两个部分中所有元素的和 相等 。 如果存在这样的分割,返回 true;否则,返回 false。

示例

输入: grid = [[1,4],[2,3]] 输出: true

2. 解题思路

核心观察

算法步骤

3. 代码实现

java
class Solution {
    public boolean canPartitionGrid(int[][] grid) {
        int n = grid.length;
        int m = grid[0].length;
        long total = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                total += grid[i][j];
            }
        }
        if (total % 2 != 0) return false;
        long target = total / 2;
        long sum = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                sum += grid[i][j];
            }
            if (sum == target) {
                return true;
            }
        }
          long colSum = 0;
        for (int j = 0; j < m; j++) {
            for (int i = 0; i < n; i++) {
                colSum += grid[i][j];
            }
            if (colSum == target) return true;
        }
        return false;
    }
}

4. 代码优化说明

5. 复杂度分析

6. 总结

Powered by VitePress 1.6.4 | 持续更新中