当前位置: 首页 > news >正文

leetcode:1582. 二进制矩阵中的特殊位置(python3解法)

难度:简单

        给定一个 m x n 的二进制矩阵 mat,返回矩阵 mat 中特殊位置的数量。

        如果位置 (i, j) 满足 mat[i][j] == 1 并且行 i 与列 j 中的所有其他元素都是 0(行和列的下标从 开始计数),那么它被称为 特殊 位置。

示例 1:

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

示例 2:

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

提示:

  • m == mat.length
  • n == mat[i].length
  • 1 <= m, n <= 100
  • mat[i][j] 是 0 或 1

题解:

class Solution:
    def numSpecial(self, mat: List[List[int]]) -> int:
        m = len(mat)  # 行数  
        n = len(mat[0])  # 列数  
        res = 0  
        for i in range(m):  
            if sum(mat[i]) == 1:  # 检查当前行是否只有一个1  
                for j in range(n):  
                    if mat[i][j] == 1:  # 找到这个1的位置  
                        # 检查当前列是否只有一个1  
                        col_sum = 0  
                        for k in range(m):  
                            col_sum += mat[k][j]  
                        if col_sum == 1:  # 如果列的和也是1,说明是特殊位置  
                            res += 1  
        return res

        

相关文章:

  • Spring Boot和Django的区别
  • 一.搭建ubuntu系统服务器
  • Zcanpro搭配USBCANFD-200U在新能源汽车研发测试中的应用指南(周立功/致远电子)
  • Ubuntu 22.04 LTS 推荐安装哪一个版本
  • 51 驱动 INA219 电流电压功率测量
  • 本周大模型新动向!即插即用知识模块,人机交互新趋势,检索增强技术深度解析
  • 微信小程序:解决tabbar切换时,页面不刷新问题
  • 卸载和重装Git后,如何正常恢复和使用本地仓库通常存储在项目?
  • Vue Router 实现动态路由的前端操作解析
  • DRM_CLIENT_CAP_UNIVERSAL_PLANES和DRM_CLIENT_CAP_ATOMIC
  • Sentinel[超详细讲解]-1
  • android常用资料
  • 1Panel MCP Server发布,开启AI对话式运维新时代!
  • 基于Hbuilder X的uni-app连接OneNET云平台及AI交互 实战指南(二)——获取数据流模型的数据
  • 算法 | 蜘蛛蜂优化算法原理,公式,应用,算法改进研究综述,matlab代码
  • MyBatis实战笔记
  • MapReduce 的工作原理
  • Electron 开发:获取当前客户端 IP
  • kotlin扩展函数的实现原理
  • 环境 tensorflow ERROR: No matching distribution found for ai-edge-litert
  • 定制开发网站的公司/专业做网站的公司
  • 济南网站制作企业/网络推广优化招聘
  • 做网站例子/百度推广app下载安卓版
  • 赢展网站建设/长沙正规竞价优化推荐
  • 443是端口网站建设/超级外链吧外链代发
  • 上海做产地证在哪个网站录入/网站建设公司网站