每日一题——LeetCode1582.二进制矩阵中的特殊位置

方法一 模拟

先把矩阵每一行和每一列中1的数量统计出来,然后遍历矩阵,元素为1的位置看他所在的行和列的1的数量是否都为1即为满足题意的点

var numSpecial = function(mat) {
   let m = mat.length, n = mat[0].length
   let rows = new Array(m).fill(0)
   let cols = new Array(n).fill(0)
    for (let i = 0; i < m; i++) {
        for (let j = 0; j < n; j++) {
            rows[i] += mat[i][j]
            cols[j] += mat[i][j]
        }
    }
    let res = 0
    for (let i = 0; i < m; i++) {
        for (let j = 0; j < n; j++) {
            if (mat[i][j] === 1 && rows[i] === 1 && cols[j] === 1) {
                res++
            }
        }
    }
    return res
};

 消耗时间和内存情况:

方法二 列的标记值

统计每一行1的频次,然后在第一行对应列加上这个频次,如果当前行是第一行,避免重复统计需要减1

作者:力扣官方题解
链接:leetcode.1582二进制矩阵中的特殊位置
 

var numSpecial = function(mat) {
    const m = mat.length, n = mat[0].length;
    for (let i = 0; i < m; i++) {
        let cnt1 = 0;
        for (let j = 0; j < n; j++) {
            if (mat[i][j] === 1) {
                cnt1++;
            }
        }
        if (i === 0) {
            cnt1--;
        }
        if (cnt1 > 0) {
            for (let j = 0; j < n; j++) {
                if (mat[i][j] === 1) {
                    mat[0][j] += cnt1;
                }
            }
        }
    }
    let sum = 0;
    for (const num of mat[0]) {
        if (num === 1) {
            sum++;
        }
    }
    return sum;
};

消耗时间和内存情况:

相关推荐

  1. LeetCode每日 - 负二进制转化

    2024-03-10 01:26:01       39 阅读
  2. LeetCode每日152. 乘积最大子数组

    2024-03-10 01:26:01       76 阅读
  3. LeetCode 每日 数学篇 LCR 182.动态口令

    2024-03-10 01:26:01       34 阅读

最近更新

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

    2024-03-10 01:26:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 01:26:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 01:26:01       82 阅读
  4. Python语言-面向对象

    2024-03-10 01:26:01       91 阅读

热门阅读

  1. 安全测试常用方式

    2024-03-10 01:26:01       50 阅读
  2. RabbitMQ事务机制和确认机制

    2024-03-10 01:26:01       44 阅读
  3. 学习SVN

    2024-03-10 01:26:01       48 阅读
  4. [AIGC] Flink中的时间语义:精确处理数据

    2024-03-10 01:26:01       44 阅读
  5. P5461 赦免战俘

    2024-03-10 01:26:01       47 阅读
  6. Hive SQL 开发指南(三)优化及常见异常

    2024-03-10 01:26:01       42 阅读
  7. 洛阳旅游攻略

    2024-03-10 01:26:01       47 阅读