LeetCode73题:矩阵置零(python3)

在这里插入图片描述
代码思路:
这里用矩阵的第一行和第一列来标记是否含有0的元素,但这样会导致原数组的第一行和第一列被修改,无法记录它们是否原本包含 0。因此我们需要额外使用两个标记变量分别记录第一行和第一列是否原本包含 0。

class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        row = len(matrix) #代表矩阵的行
        col = len(matrix[0]) #代表矩阵第一列
        row0_flag = False #额外行变量记录行是否含0
        col0_flag = False #额外列变量记录列是否含0
        for j in range(col):
            if matrix[0][j] == 0: #对于第一行各个列含0
                row0_flag = True
                break
        for i in range(row):
            if matrix[i][0] == 0: #对于第一列各个行含0
                col0_flag =True
                break
        for i in range(1,row): #第一行到最后一行
            for j in range(1,col): #第一列到最后一列
                if matrix[i][j] == 0: #如果有一个值为0
                	#则这一行这一列都为0
                    matrix[i][0] = matrix[0][j] = 0 
                   
        for i in range(1,row):
            for j in range(1,col): 
                if matrix[i][0] == 0 or matrix[0][j] == 0:
                    matrix[i][j] = 0
        if row0_flag: #如果行flag成立,那么第一行所有全为0
            for j in range(col):
                matrix[0][j] = 0
        if col0_flag: #如果列flag成立,那么第一列所有全为0
            for i in range(row):
                matrix[i][0] = 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/418158.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二、TensorFlow结构分析(2)

目录 1、会话 1.1 __init__(target,graphNone,configNone) 1.2 会话的run() 1.3 feed操作 TF数据流图图与TensorBoard会话张量变量OP高级API 1、会话 1.1 __init__(target,graphNone,configNone) def session_demo():# 会话的演示# Tensorflow实现加法运算a_t tf.constan…

python+Django+Neo4j中医药知识图谱与智能问答平台

文章目录 项目地址基础准备正式运行 项目地址 https://github.com/ZhChessOvO/ZeLanChao_KGQA 基础准备 请确保您的电脑有以下环境:python3,neo4j 在安装目录下进入cmd,输入指令“pip install -r requirement.txt”,安装需要的python库 打…

【二叉搜索树】【递归】【迭代】Leetcode 700. 二叉搜索树中的搜索

【二叉搜索树】【递归】【迭代】Leetcode 700. 二叉搜索树中的搜索 二叉搜索树解法1 递归法解法2 迭代法 ---------------🎈🎈题目链接🎈🎈------------------- 二叉搜索树 二叉搜索树(Binary Search Tree&#xff…

【详识JAVA语言】运算符

什么是运算符 计算机的最基本的用途之一就是执行数学运算&#xff0c;比如&#xff1a; int a 10; int b 20;a b; a < b; 上述 和< 等就是运算符&#xff0c;即&#xff1a;对操作数进行操作时的符号&#xff0c;不同运算符操作的含义不同。 作为一门计算机语言&…

mprpc分布式RPC网络通信框架

mprpc 项目介绍 该项目是一个基于muduo、Protobuf和Zookeeper实现的轻量级分布式RPC网络通信框架。 可以把任何单体架构系统的本地方法调用&#xff0c;重构成基于TCP网络通信的RPC远程方法调用&#xff0c;实现同一台机器的不同进程之间的服务调用&#xff0c;或者不同机器…

FreeRTOS 软件定时器

目录 一、软件定时器简介 1、软件定时器概述 2、编写回调函数的注意事项 二、软件定时器实现机制 1、软件定时器实现机制 2、软件定时器相关配置 三、单次定时器 四、周期定时器 五、软件定时器的基本操作 1、创建软件定时器 2、复位软件定时器 3、开启软件定时器 …

【ZooKeeper 】安装和使用,以及java客户端

目录 1. 前言 2. ZooKeeper 安装和使用 2.1. 使用Docker 安装 zookeeper 2.2. 连接 ZooKeeper 服务 2.3. 常用命令演示 2.3.1. 查看常用命令(help 命令) 2.3.2. 创建节点(create 命令) 2.3.3. 更新节点数据内容(set 命令) 2.3.4. 获取节点的数据(get 命令) 2.3.5. 查看…

深度学习_15_过拟合欠拟合

过拟合和欠拟合 过拟合和欠拟合是训练模型中常会发生的事&#xff0c;如所要识别手势过于复杂&#xff0c;如五角星手势&#xff0c;那就需要更改高级更复杂的模型去训练&#xff0c;若用比较简单模型去训练&#xff0c;就会导致模型未能抓住手势的全部特征&#xff0c;那简单…

Gitlab: 私有化部署

目录 1. 说明 2. 资源要求 3. 安装 4. 配置实践 4.1 服务器 4.2 人员与项目 4.2 部署准备 4.2.1 访问变量及用户账号设置 4.2.2 Runner设置 4.2.3 要点 5. 应用项目 CI/CD 6. 参考 1. 说明 gitlab是一个强大且免费的代码管理/部署工具&#xff0c;能统一集成代码仓…

力扣 674. 最长连续递增序列

题目来源&#xff1a;https://leetcode.cn/problems/longest-continuous-increasing-subsequence/description/ C题解&#xff1a;贪心算法。把所有元素遍历一遍&#xff0c;比较它与上个数的大小&#xff0c;大的话更新长度tmp&#xff0c;小的话初始化长度tmp&#xff0c;并与…

linux nasm汇编中调用printf不报错,但调用scanf报错。抛出了分段错误(核心转储)

当我写了如下汇编时 ; nasm -f elf64 -g -F dwarf charsin.asm ; gcc charsin.o -no-pie -o charsin ; ld -o eatclib eatclib.o ; gdb eatclib[SECTION .data]SPrompt db Enter string data, followed by Enter: ,0IPrompt db Enter an integer value, followed by Enter: ,1…

本科毕业设计:计及并网依赖性的分布式能源系统优化研究。(C语言实现)(内包含NSGA II优化算法)(二)

目录 前言 1、sofc函数 2、光伏板函数 3、集热场函数 4、sofc电跟随策略函数 5、二分法找sofc运行点函数 6、目标函数&#xff1a;成本 7、目标函数&#xff1a;二氧化碳排放量 8、目标函数&#xff1a;并网依赖性 前言 本篇文章介绍的是我的毕业设计&#xff0c;我将C…

【JavaEE】_HttpServletResponse类

目录 1. 核心方法 2. 关于setStatus(400)与sendError 2.1 setStatus(400) 2.2 sendError 3. setHeader方法 4. 构造重定向响应 4.1 使用setHeader和setStatus实现重定向 4.2 使用sendRedirect实现重定向 本专栏已有文章介绍HttpServlet和HttpServletRequest类&#…

KubeEdge 边缘计算应用部署

文章目录 一、概述1.Kubernetes 对 Pod 调度规则1.1.自动调度1.2.定向调度1.3.亲和性调度1.4.污点和容忍 2.KubeEdge 应用部署2.1.KubeEdge应用部署方式2.2.标签操作 二、KubeEdge应用部署1.Node添加标签2.DaemonSet部署2.1.部署到所有节点2.2.部署到边缘节点 3.Deployment部署…

登录认证-Filter(黑马学习笔记)

分析 我们需要使用过滤器Filter来完成案例我们需要使用过滤器Filter来完成案例 我们先来回顾下前面分析过的登录校验的基本流程&#xff1a; ● 要进入到后台管理系统&#xff0c;我们必须先完成登录操作&#xff0c;此时就需要访问登录接口login。 —————————————…

leetcode:860.柠檬水找零

题意&#xff1a;按照支付顺序&#xff0c;进行支付&#xff0c;能够正确找零。 解题思路&#xff1a;贪心策略&#xff1a;针对支付20的客人&#xff0c;优先选择消耗10而不是消耗5&#xff0c;因为5可以用来找零10或20. 代码实现&#xff1a;有三种情况&#xff08;代表三种…

CSS技巧:实现两个div在同一行显示的方法

css如何让两个div在同一行显示 - web开发 - 亿速云 在Web开发中&#xff0c;经常遇到需要将多个元素水平排列在同一行的情况。其中一个常见的需求是将两个div元素放置在同一行上&#xff0c;使它们并排显示。在本文中&#xff0c;我们将介绍几种实现这一效果的CSS方法。 1. 使…

MySQL:索引有哪些(清晰明了)

一提到索引&#xff0c;可能就会想到B树索引、Hash索引、聚簇索引、主键索引、唯一索引、联合索引等等&#xff0c;但这些名词并不能混为一谈&#xff0c;他们有重复的部分&#xff0c;是从不同方面给索引取的名字。 从数据结构上来讲&#xff1a;B树索引、Hash索引、Full-text…

2024高校建设大数据实验室的用途有哪些?

随着当前现代计算机信息技术的快速进步发展,传统的各类高校重点实验室项目建设管理模式已经难以与当前现代信息技术快速发展相相互适应,高校应用大数据重点实验室项目建设模式是高校加快培养一批创新型高校大数据专业人才的重要技术基础。与此同时,高校应用大数据重点实验室项目…

手撕LRU缓存——LinkedHashMap简易源码

题目链接&#xff1a;https://leetcode.cn/problems/lru-cache/description/?envTypestudy-plan-v2&envIdtop-100-liked 原理非常简单&#xff0c;一个双端链表配上一个hash表。 首先我们要知道什么是LRU就是最小使用淘汰。怎么淘汰&#xff0c;链表尾部就是最不常用的直接…