首页 > 其他分享 >73. 矩阵置零

73. 矩阵置零

时间:2024-12-22 21:25:11浏览次数:3  
标签:matrix 矩阵 列有 range 73 第一列 first

  1. 题目链接

  2. 解题思路:如何原地,是困难点。我们可以使用原有的矩阵,来存放某些信息。原来的矩阵第一行,matrix[0][i]如果等于0,代表第i列有0,原来的矩阵第一列,matrix[i][0]如果等于0,代表第i列有0。还有一个注意点,就是matrix[0][0]代表什么?这是一个歧义的点,所以不存放数据,单独用两个变量,first_r如果等于0,代表第0行有0,first_c如果等于0,代表第0列有0。

  3. 代码

    class Solution:
        def setZeroes(self, matrix: List[List[int]]) -> None:
            # 使用第0行和第0列, 判断是否有0出现,然后再统一修改矩阵
            # 例如,matrix[0][i] == 0,代表的是第i列有一个0
            # matrix[i][0] == 0,代表的是第i行有一个0
            r = len(matrix)
            c = len(matrix[0])   
            # 第0行和第1列的零的个数要分别统计,因为共用了matrix[0][0]
            first_r = -1
            first_c = -1
            for i in range(0, c, 1): # 统计第一行是否有0
                if matrix[0][i] == 0:
                    first_r = 0
                    break
            for i in range(0, r, 1): # 统计第一列是否有0
                if matrix[i][0] == 0:
                    first_c = 0
                    break
            # 统计其他的是否有0
            for i in range(1, r, 1) :
                for j in range(1, c, 1):
                    if matrix[i][j] == 0:
                        matrix[i][0] = 0
                        matrix[0][j] = 0
                    
            
            # 开始改变矩阵
            for i in range(1, r, 1):
                for j in range(1, c, 1):
                    if matrix[i][0] == 0 or matrix[0][j] == 0:
                        matrix[i][j] = 0
            # 单独处理第0行和第0列
            if first_c == 0:   # 第一列
                for i in range(0, r, 1):
                    matrix[i][0] = 0
            if first_r == 0: # 第一行
                for j in range(0, c, 1):
                    matrix[0][j] = 0
            
    
            
    

标签:matrix,矩阵,列有,range,73,第一列,first
From: https://www.cnblogs.com/ouyangxx/p/18622538

相关文章

  • python怎么看矩阵维数
    print(X.shape):查看矩阵的行列号print(len(X)):查看矩阵的行数print(X.ndim):查看矩阵的维数1、查看矩阵的行列号2、查看矩阵的行数3、查看矩阵的维数......
  • 54. 螺旋矩阵
    题目链接解题思路:宏观思路,一圈一圈打,确定好「一圈」的左上角以及右下角,然后再打印。有两种特殊情况,左上角和右上角的列相等时,只需要打一行即可;左上角的列和右下角的列相等时,只需打印一列即可。代码:fromtypingimportListclassSolution:defspiralOrder(self,......
  • Unity Shader学习日记 part 3 线性代数--矩阵变换
            之前我们学到了矩阵的相关基础,了解矩阵使用了进行变幻的。可是在三维空间中我们不管是表示点还是向量,都是通过x,y,z来表示的。那我们如何在三维向量中,表示出来变换的呢?齐次坐标    齐次坐标:将原本的n维向量用n+1维来表示。    原因:1.不论是......
  • 2024-12-22:矩阵中的最大得分。用go语言,给定一个由正整数构成的 m x n 矩阵 grid,你可以
    2024-12-22:矩阵中的最大得分。用go语言,给定一个由正整数构成的mxn矩阵grid,你可以从任意单元格开始,移动到正下方或正右侧的任一单元格(不要求相邻)。在从值为c1的单元格移动到值为c2的单元格时,得分计算为c2-c1。你的目标是至少移动一次,并找到能够获得的最大总得......
  • 云手机:小红书矩阵搭建方案
    云手机概述:1.亚矩阵云手机是一个基于ARM虚拟化技术的云手机平台,通过云计算、大数据、人工智能、边缘计算等技术,全面支持安卓各型号手机应用的使用与管理服务。全天候云端智能托管应用,让用户突破终端限制,实现业务全天候稳定在线。2.亚矩阵云手机是在服务器端运行APP的仿真......
  • [Python学习日记-73] 面向对象实战1——答题系统
    [Python学习日记-73]面向对象实战1——答题系统简介需求模型——5w1h8c领域模型设计模型实现模型案例:年会答题系统简介    在学习完面向对象之后你会发现,你还是不会自己做软件做系统,这是非常正常的,这是因为计算机软件和系统的制作是一个系统性工程,在大学里面......
  • 搜索二维矩阵 II
    编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],ta......
  • 螺旋矩阵
    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]思路:设置好边界......
  • 矩阵置零(标记数组)
    给定一个 mxn 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。示例1:输入:matrix=[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例2:输入:matrix=[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,......
  • 集星云推短视频矩阵系统:重塑短视频营销格局
    在瞬息万变的数字化时代,短视频已然成为连接用户与品牌的桥梁,为企业和个人创作者提供了前所未有的营销机遇。然而,面对日益激烈的市场竞争,如何高效、精准地实施短视频营销策略,成为众多企业和创作者面临的重大挑战。在此背景下,集星云推短视频矩阵系统应运而生,它以其卓越的功能、高......