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

news/2024/11/20 23:18:29/

题目

给你一个大小为 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

在这里插入图片描述


http://www.ppmy.cn/news/605614.html

相关文章

数据结构——八大排序算法(面试必备)

目录1. 交换排序——冒泡排序2. 交换排序——快速排序3. 选择排序——简单选择排序4. 选择排序——堆排序什么是堆堆排序基本思想步骤图解代码实现5. 插入排序——简单插入排序6. 插入排序——希尔排序7. 归并排序8. 基数排序1. 交换排序——冒泡排序 从要排序序列的第一个元素…

在CMD命令行中切换到管理员权限模式

1、打开CMD 2、输入&#xff1a; runas /noprofile /user:Administrator cmd 3、输入Administrator账户的密码&#xff0c;必须设置密码 PS&#xff1a;可以不是Administrator账户&#xff0c;只要是具有管理员权限的账号都可&#xff0c;例如ASUS等。 runas /noprofile /us…

LeetCode中等题之根据字符出现频率排序

题目 给定一个字符串&#xff0c;请将字符串里的字符按照出现的频率降序排列。 示例 1: 输入: “tree” 输出: “eert” 解释: e’出现两次&#xff0c;r’和’t’都只出现一次。 因此’e’必须出现在’r’和’t’之前。此外&#xff0c;"eetr"也是一个有效的答案。…

面试高频——JUC并发工具包快速上手(超详细总结)

目录一、什么是JUC二、基本知识2.1、进程和线程2.2、Java默认有两个进程2.3、Java能够开启线程吗&#xff1f;2.4、并发和并行2.5、线程的状态2.6、wait和sleep的区别2.7、什么是可重入锁2.8、synchronized买票案例回顾三、Lock锁3.1、简介3.2、买票问题重现3.3、和Synchronize…

qt QSqlRelationalTableModel 详解

背景知识&#xff1a; Qt SQL的API分为不同层&#xff1a; 驱动层 驱动层 对于QT是基于C来实现的框架&#xff0c;该层主要包括QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorbase、QSqlDriverPlugin and QSqlResult。这一层提供了特定数据库和SQL API层之间的底层桥梁…

python的print格式化输出,以及使用format来控制。

20210305 time.strftime("%Y%m%d%H%M%S", time.localtime()) 时间格式化 20210206 https://www.runoob.com/w3cnote/python3-print-func-b.html 重点 20210206 https://blog.csdn.net/a19990412/article/details/80149112 !r 20210205 https://www.jianshu.com/p…

LeetCode中等题之使数组中所有元素相等的最小操作数

题目 存在一个长度为 n 的数组 arr &#xff0c;其中 arr[i] (2 * i) 1 &#xff08; 0 < i < n &#xff09;。 一次操作中&#xff0c;你可以选出两个下标&#xff0c;记作 x 和 y &#xff08; 0 < x, y < n &#xff09;并使 arr[x] 减去 1 、arr[y] 加上 1…

Pycharm报错:Process finished with exit code -1073741819 (0xC0000005)

1.本来应该是文件夹目录 写成了文件 2.路径前面没有加r 识别成正则\t,\n等 记录踏坑历程 在用pycharm tensorflow-gpu环境 读tfrecord时出错 pycharm报错&#xff1a;Process finished with exit code -1073741819 (0xC0000005) 。针对这个泛泛的错误&#xff0c;网上存在应对…