python-leetcode-1582. 二进制矩阵中的特殊位置

1582. 二进制矩阵中的特殊位置 - 力扣(LeetCode)

这个问题可以通过遍历矩阵并检查每个为 1 的元素所在行和列是否其他元素都为 0 来解决。下面是实现该算法的 Python 代码:

def numSpecial(mat):
    m, n = len(mat), len(mat[0])
    
    # 先统计每一行和每一列中 1 的个数
    row_sum = [sum(row) for row in mat]
    col_sum = [sum(mat[i][j] for i in range(m)) for j in range(n)]
    
    count = 0
    # 遍历矩阵,找符合条件的位置
    for i in range(m):
        for j in range(n):
            if mat[i][j] == 1 and row_sum[i] == 1 and col_sum[j] == 1:
                count += 1
    return count

示例

mat = [
    [1, 0, 0],
    [0, 0, 1],
    [1, 0, 0]
]
print(numSpecial(mat))  # 输出 1

解释

上述矩阵中,只有位置 (1, 2) 是特殊位置,因为它是 1 且其所在的行和列其他元素都是 0。

如果你想我用其他语言写这段代码或者做复杂度分析,随时说哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值