题目

给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 。
特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特殊位置。
示例 1:
输入:mat = [[1,0,0],
[0,0,1],
[1,0,0]]
输出:1
解释:(1,2) 是一个特殊位置,因为 mat[1][2] == 1 且所处的行和列上所有其他元素都是 0
示例 2:
输入:mat = [[1,0,0],
[0,1,0],
[0,0,1]]
输出:3
解释:(0,0), (1,1) 和 (2,2) 都是特殊位置
示例 3:

输入:mat = [[0,0,0,1],
[1,0,0,0],
[0,1,1,0],
[0,0,0,0]]
输出:2
示例 4:
输入: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
提示:
rows == mat.length
cols == mat[i].length
1 <= rows, cols <= 100
mat[i][j] 是 0 或 1
来源:力扣(LeetCode)

解题思路

  这个题最简单的思路就是,对于每个为1的单元格,检查它的四个方向上是否存在1。

class Solution:def numSpecial(self, mat: List[List[int]]) -> int:def check(x,y):i=1while x-i>=0:if mat[x-i][y]:return Falsei+=1i=1while y-i>=0:if mat[x][y-i]:return Falsei+=1try:i=1while True:if mat[x+i][y]:return Falsei+=1except:try:i=1while True:if mat[x][y+i]:return Falsei+=1except:return Truecount=0for i in range(len(mat)):for j in range(len(mat[0])):if mat[i][j]:if check(i,j):count+=1return count

LeetCode简单题之二进制矩阵中的特殊位置相关推荐

  1. LeetCode简单题之二进制表示中质数个计算置位

    题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...

  2. LeetCode简单题之判断矩阵经轮转后是否一致

    题目 给你两个大小为 n x n 的二进制矩阵 mat 和 target .现 以 90 度顺时针轮转 矩阵 mat 中的元素 若干次 ,如果能够使 mat 与 target 一致,返回 true : ...

  3. LeetCode简单题之重塑矩阵

    题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据. 给你一个由二维数组 mat 表示的 m ...

  4. LeetCode简单题之Excel 表中某个范围内的单元格

    题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...

  5. LeetCode简单题之检查句子中的数字是否递增

    题目 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格.每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文 ...

  6. LeetCode简单题之有序数组中出现次数超过25%的元素

    题目 给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%. 请你找到并返回这个整数 示例: 输入:arr = [1,2,2,6,6,6,6,7,10 ...

  7. leetcode刷题之python矩阵相关题目

    一.开始 话不多说,下一个环节!感慨都在刷题后! 二.题目解析 1.统计有序矩阵中的负数(1351)难度:简单 class Solution:def countNegatives(self,grid: ...

  8. Leetcode1091_二进制矩阵中的最短路径(Java+BFS解法)

    Leetcode1091题:二进制矩阵中的最短路径(Java+BFS解法) 文章目录 Leetcode1091题:二进制矩阵中的最短路径(Java+BFS解法) 1.题目链接 2.解题思想 3.Jav ...

  9. LeetCode简单题之矩阵中的幸运数

    题目 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最 ...

最新文章

  1. hdu 1879 继续畅通工程
  2. Linux下的一个图形管理工具webmin
  3. spring data jpa实现分页查询功能
  4. plsql清完表需不需要提交事务_分布式基础-分布式事务
  5. ubuntu mysql修改字符集后不能启动mysql_解决ubuntu下修改my.cnf设置字符集导致mysql无法启动...
  6. 在window下搭建TensorFlow
  7. 对fgets的理解1
  8. 考勤信息管理系统 需求说明
  9. python学习方法总结_Python学习总结(一)
  10. 第 4 章 MybatisPlus 条件构造器
  11. Hyperledger fabric v2.3 交易流程 翻译
  12. 计算机应用基础模块3实操题正确答案,国开20秋计算机应用基础作业3 模块4 PowerPoint 2010实操题答案...
  13. PHP序列化与反序列化
  14. PCB设计笔记-AD(一)-如何从立创EDA中将元器件导入AD中
  15. Android SIM卡识别加载流程
  16. 服务器无限指令箱子,我的世界箱子无限指令 | 手游网游页游攻略大全
  17. 罗赛塔石碑Rosetta Stone安装教程
  18. Android8.1 SystemUI 之图案锁验证流程
  19. unknown symbol in module, or unknown parameter
  20. 江苏电信欢go重新定义宽带标准

热门文章

  1. VSCode 安装 Go 插件、gopls 是个什么东东
  2. tornado 异步两种实现形式 通过回调可以利用
  3. python yield 和 yield from用法总结
  4. 分离内核和虚拟机支持安全的关键任务边缘计算
  5. 推理芯片的性能建立在优化的存储子系统设计上
  6. Android中Service生命周期、启动、绑定、混合使用
  7. 2021年大数据环境搭建(二):分布式环境搭建
  8. OPPO海外官方调试ID
  9. launchctl mysql_Mac Yosemite 10.10 下利用 Launchctl 自启动 mysql
  10. HarmonyOS UI开发 DirectionalLayout(定向布局) 的使用