LeetCode简单题之二进制矩阵中的特殊位置
题目
给你一个大小为 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简单题之二进制矩阵中的特殊位置相关推荐
- LeetCode简单题之二进制表示中质数个计算置位
题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...
- LeetCode简单题之判断矩阵经轮转后是否一致
题目 给你两个大小为 n x n 的二进制矩阵 mat 和 target .现 以 90 度顺时针轮转 矩阵 mat 中的元素 若干次 ,如果能够使 mat 与 target 一致,返回 true : ...
- LeetCode简单题之重塑矩阵
题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据. 给你一个由二维数组 mat 表示的 m ...
- LeetCode简单题之Excel 表中某个范围内的单元格
题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...
- LeetCode简单题之检查句子中的数字是否递增
题目 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格.每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文 ...
- LeetCode简单题之有序数组中出现次数超过25%的元素
题目 给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%. 请你找到并返回这个整数 示例: 输入:arr = [1,2,2,6,6,6,6,7,10 ...
- leetcode刷题之python矩阵相关题目
一.开始 话不多说,下一个环节!感慨都在刷题后! 二.题目解析 1.统计有序矩阵中的负数(1351)难度:简单 class Solution:def countNegatives(self,grid: ...
- Leetcode1091_二进制矩阵中的最短路径(Java+BFS解法)
Leetcode1091题:二进制矩阵中的最短路径(Java+BFS解法) 文章目录 Leetcode1091题:二进制矩阵中的最短路径(Java+BFS解法) 1.题目链接 2.解题思想 3.Jav ...
- LeetCode简单题之矩阵中的幸运数
题目 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最 ...
最新文章
- hdu 1879 继续畅通工程
- Linux下的一个图形管理工具webmin
- spring data jpa实现分页查询功能
- plsql清完表需不需要提交事务_分布式基础-分布式事务
- ubuntu mysql修改字符集后不能启动mysql_解决ubuntu下修改my.cnf设置字符集导致mysql无法启动...
- 在window下搭建TensorFlow
- 对fgets的理解1
- 考勤信息管理系统 需求说明
- python学习方法总结_Python学习总结(一)
- 第 4 章 MybatisPlus 条件构造器
- Hyperledger fabric v2.3 交易流程 翻译
- 计算机应用基础模块3实操题正确答案,国开20秋计算机应用基础作业3 模块4 PowerPoint 2010实操题答案...
- PHP序列化与反序列化
- PCB设计笔记-AD(一)-如何从立创EDA中将元器件导入AD中
- Android SIM卡识别加载流程
- 服务器无限指令箱子,我的世界箱子无限指令 | 手游网游页游攻略大全
- 罗赛塔石碑Rosetta Stone安装教程
- Android8.1 SystemUI 之图案锁验证流程
- unknown symbol in module, or unknown parameter
- 江苏电信欢go重新定义宽带标准
热门文章
- VSCode 安装 Go 插件、gopls 是个什么东东
- tornado 异步两种实现形式 通过回调可以利用
- python yield 和 yield from用法总结
- 分离内核和虚拟机支持安全的关键任务边缘计算
- 推理芯片的性能建立在优化的存储子系统设计上
- Android中Service生命周期、启动、绑定、混合使用
- 2021年大数据环境搭建(二):分布式环境搭建
- OPPO海外官方调试ID
- launchctl mysql_Mac Yosemite 10.10 下利用 Launchctl 自启动 mysql
- HarmonyOS UI开发 DirectionalLayout(定向布局) 的使用