• 力扣 1582. 二进制矩阵中的特殊位置


    题目

    给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 。

    特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特殊位置。

    示例

    输入:mat = [[1,0,0],
    [0,0,1],
    [1,0,0]]
    输出:1
    解释:(1,2) 是一个特殊位置,因为 mat[1][2] == 1 且所处的行和列上所有其他元素都是 0

    输入:mat = [[1,0,0],
    [0,1,0],
    [0,0,1]]
    输出:3
    解释:(0,0), (1,1) 和 (2,2) 都是特殊位置

    输入:mat = [[0,0,0,1],
    [1,0,0,0],
    [0,1,1,0],
    [0,0,0,0]]
    输出:2

    输入:mat = [[0,0,0,0,0],
    [1,0,0,0,0],
    [0,1,0,0,0],
    [0,0,1,0,0],
    [0,0,0,1,1]]
    输出:3

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/special-positions-in-a-binary-matrix
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    方法1:模拟
    Java实现
    class Solution {
        public int numSpecial(int[][] mat) {
            int row = mat.length, col = mat[0].length;
            int res = 0;
            for (int i = 0; i < row; i++) {
                for (int j = 0; j < col; j++) {
                    if (mat[i][j] == 1 && pd(mat, i, j)) res++;
                }
            }
            return res;
        }
    
        public boolean pd(int[][] mat, int i, int j) {
            int row = mat.length, col = mat[0].length;
            //上
            for (int ii = i - 1; ii >= 0; ii--) {
                if (mat[ii][j] == 1) return false;
            }
    
            //下
            for (int ii = i + 1; ii < row; ii++) {
                if (mat[ii][j] == 1) return false;
            }
    
            //左
            for (int jj = j - 1; jj >= 0; jj--) {
                if (mat[i][jj] == 1) return false;
            }
    
            //右
            for (int jj = j + 1; jj < col; jj++) {
                if (mat[i][jj] == 1) return false;
            }
            return true;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    在这里插入图片描述

  • 相关阅读:
    一起Talk Android吧(第三百六十六回:多线程之LOCK锁)
    影响服务器稳定性的因素:
    1.nodejs创建服务器、接收、响应请求
    阿里开源低代码引擎 - Low-Code Engine
    汉罗塔汉洛塔c++,看不懂ni打我
    应变.破局2022,合众致达逐梦.无惧
    C#鼠标穿透功能(WinForm)
    Flink SQL --命令行的使用(02)
    Mapbox 与 Babylon.js 可视化 创建喷泉底部
    MySQL事务详解
  • 原文地址:https://blog.csdn.net/qq_42467009/article/details/126685711