【力扣 · 每日一题】1582. 二进制矩阵中的特殊位置 (枚举 + Go实现)

简介: 【力扣 · 每日一题】1582. 二进制矩阵中的特殊位置 (枚举 + Go实现)

题意

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


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

思路

维护每一行的和跟每一列的和

枚举每一个元素,如果当前元素的值为1并且所在行的和跟所在列的和都为1,那么就表示所在行跟所在列只有本身一个元素为1,符合题意。

代码

func numSpecial(mat [][]int) int {
    n,m := len(mat),len(mat[0])
    ans := 0
    x := make([]int,n)
    y := make([]int,m)
    for i := 0 ; i < n ; i = i+1 {
        for j := 0 ; j < m ; j = j+1 {
            if mat[i][j] == 1 {
                x[i] = x[i] + 1 
                y[j] = y[j] + 1
            }
        } 
    } 
    for i := 0 ; i < n ; i = i+1 {
        for j := 0 ; j < m ; j = j+1 {
            if mat[i][j] == 1 && x[i] == 1 && y[j] == 1{
                ans = ans +1
            }
        } 
    } 
    return ans
}
目录
相关文章
|
2月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
2月前
|
算法
力扣240 搜索二维矩阵II
力扣240 搜索二维矩阵II
|
4月前
|
算法 测试技术 C#
【二分查找】LeetCode1970:你能穿过矩阵的最后一天
【二分查找】LeetCode1970:你能穿过矩阵的最后一天
|
4月前
|
Go
golang力扣leetcode 240.搜索二维矩阵II
golang力扣leetcode 240.搜索二维矩阵II
19 0
|
4月前
leetcode-329:矩阵中的最长递增路径
leetcode-329:矩阵中的最长递增路径
25 0
|
2月前
|
机器学习/深度学习 人工智能 算法
LeetCode刷题--- 面试题 01.07. 旋转矩阵(原地旋转+翻转替旋转)
LeetCode刷题--- 面试题 01.07. 旋转矩阵(原地旋转+翻转替旋转)
|
2月前
LeetCode[题解] 2864. 最大二进制奇数
LeetCode[题解] 2864. 最大二进制奇数
11 0
|
2月前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
32 8
|
4月前
|
算法
【Leetcode 74】搜索二维矩阵 —— 二分查找|矩阵
给你一个满足下述两条属性的`m x n`整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数
|
4月前
leetcode:190. 颠倒二进制位
leetcode:190. 颠倒二进制位
12 0