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

小黑享受思考心流: 73. 矩阵置零

小黑代码

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""items = []m = len(matrix)n = len(matrix[0])for i in range(m):for j in range(n):if not matrix[i][j]:items.append((i, j))for item in items:x = item[0]y = item[1]for i in range(n):matrix[x][i] = 0for j in range(m):matrix[j][y] = 0return matrix

在这里插入图片描述

标记变量

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""# 行和列数m = len(matrix)n = len(matrix[0])# 判断第一行和第一列是否有0has_zero_row = Falsehas_zero_column = Falsefor i in range(m):if not matrix[i][0]:has_zero_row = Truebreakfor i in range(n):if not matrix[0][i]:has_zero_column = Truebreak# 开始通过第一行和第一列记录该行是否置零for i in range(1, m):for j in range(1, n):if not matrix[i][j]:matrix[i][0] = 0matrix[0][j] = 0# 开始进行置零for i in range(1, m):if not matrix[i][0]:for t in range(1, n):matrix[i][t] = 0for i in range(1,n):if not matrix[0][i]:for t in range(1,m):matrix[t][i] = 0# 判断第一行和第一列是否需要置零if has_zero_row:for i in range(m):matrix[i][0] = 0if has_zero_column:for i in range(n):matrix[0][i] = 0return matrix

在这里插入图片描述

C#练习

public class Solution {public void SetZeroes(int[][] matrix) {int m = matrix.Length;int n = matrix[0].Length;// 标记变量bool rowZero = false;bool columnZero = false;// 计算标记变量for(int i = 0; i < m; i++){if(matrix[i][0]==0){rowZero = true;break;}}for(int j = 0; j < n; j++){if(matrix[0][j]==0){columnZero = true;break;}}// 开始计算为零的行列for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){if(matrix[i][j]==0){matrix[i][0] = 0;matrix[0][j] = 0;}}}// 开始置零for(int i = 1; i < m; i++){if(matrix[i][0]==0){for(int j = 1; j < n; j++){matrix[i][j] = 0;}}}for(int j = 1; j < n; j++){if(matrix[0][j]==0){for(int i = 1; i < m; i++){matrix[i][j] = 0;}}}// 判断第一行和第一列是否需要置零if(rowZero){for(int i = 0; i < m; i++){matrix[i][0] = 0;}}if(columnZero){for(int j = 0; j < n; j++){matrix[0][j] = 0;}}}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • Spring Boot中@RequestParam、@RequestBody、@PathVariable的区别与使用
  • 解读TypeScript 类型工具
  • GAMES202-高质量实时渲染(Real-Time Shadows)
  • threejs学习day02
  • 图解模型并行框架
  • LTE-M(eMTC)与其他低功耗广域网技术相比有何优势?
  • windows10系统:如何把文件夹里的图片直接显示出来?
  • 安卓的Launcher 在哪个环节进行启动
  • Linux电源管理(2)_常规的电源管理的基本概念和软件架构
  • 影楼精修-皮肤瑕疵祛除算法解析
  • 8.0 西门子PLC的S7通讯解析
  • 前端高频面试题day3
  • 【项目中的流程管理(十)】
  • 深入理解 Linux 用户管理:从基础到实践
  • 基于STM32、HAL库的HX711模数转换器ADC驱动程序设计
  • MIME 类型是个什么东西?
  • setup和hold互卡问题剖析
  • CDA Edit 的设计
  • vscode本地化显示远程图形化界面
  • 生成式人工智能认证(GAI认证)有什么用?
  • 黄晓丹:用“诗心”找到生存的意义
  • 江苏银行一季度净赚近98亿增逾8%,不良贷款率微降
  • 新经济与法|如何治理网购刷单与控评?数据合规管理是关键
  • 玉渊谭天丨中方减少美国农产品进口后,舟山港陆续出现巴西大豆船
  • 《九龙城寨之围城》斩获香港金像奖九项大奖,包括最佳影片
  • 传染病防治法修订草案提请三审,拟加强医疗机构疾控能力建设