每天刷两道题——第十四天

2024-01-13 03:52
文章标签 每天 第十四天 两道

本文主要是介绍每天刷两道题——第十四天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.1矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用原地算法

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
在这里插入图片描述

原地算法(in-place algorithm)

基本上不需要额外辅助的数据结构,然而,允许少量额外的辅助变量来转换数据的算法。当算法运行时,输入的数据通常会被要输出的部分覆盖掉。不是原地算法有时候称为非原地(not-in-place)或不得其所(out-of-place)。

代码

    def setZeroes(self,matrix):m,n=len(matrix),len(matrix[0])row,col=[False]*m,[False]*nfor i in range(m):for j in range(n):if matrix[i][j]==0:row[i]=col[j]=True  #把0所在行和列标记为Truefor i in range(m):for j in range(n):if row[i] or col[j]:matrix[i][j]=0return matrix

1.2螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 返回矩阵中的所有元素。

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
在这里插入图片描述

代码

    def spiralOrder(self,matrix):m,n=len(matrix),len(matrix[0])upper,left,right,down=0,0,n-1,m-1 #四个位置边界的下标res=[]while True:for i in range(left,right+1): #向右移动到最右res.append(matrix[upper][i])upper+=1 #缩小上边界,去掉已经遍历过的行if upper>down:breakfor i in range(upper,down+1): #向下移动到最底部res.append(matrix[i][right])right-=1 #缩小右边界,去掉已经遍历过的列if right<left:breakfor i in range(right,left-1,-1):  #往左res.append(matrix[down][i])down-=1 #缩小下边界,去掉遍历过的行if down<upper:breakfor i in range(down,upper-1,-1):  #向上res.append(matrix[i][left])left+=1 #缩小左边界,去掉已经遍历过的列if left>right:breakreturn res

python的range函数基础用法

#range(start, stop, step)=range(初值, 终值, 步长)
#取值范围是[start,stop)
#range()函数只适用于整数,步长可以为正值也可以为负值for i in range(4):  print(i)#0 1 2 3for i in range(1,4):print(i) #1,2,3for i in range(1,15,4):print(i) #1,5,9,13for i in range(4,1,-1):print(i) #4,3,2n=list(range(4))
print(n) #[0,1,2,3]

参考代码

这篇关于每天刷两道题——第十四天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/600164

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

【销售预测 ARIMA模型】ARIMA模型预测每天的销售额

输入数据txt格式: 2017-05-01 100 2017-05-02 200 ……. python 实现arima: # encoding: utf-8"""function:时间序列预测ARIMA模型预测每天的销售额author:donglidate:2018-05-25"""# 导入库import numpy as np # numpy库from statsmode

每天一个数据分析题(五百二十七)- word2vec模型

Word2vec,是一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。关于word2vec模型,下面说法不正确的是: A. 得到的词向量维度小,可以节省存储和计算资源 B. 考虑了全局语料库的信息 C. 无法解决多义词的问题 D. 可以表示词和词之间的关系 数据分析认证考试介绍:点击进入 数据分析考试大纲下载 题目来源于CDA模拟题库 点

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 9月6日,星期五

每天一分钟,知晓天下事! 2024年9月6日 星期五 农历八月初四 1、 “摩羯”加强为17级超强台风,6日广东深圳、珠海、湛江等多地全市停课。 2、 两部门:事业单位不得自行制定面向特定人员的专项招聘、加分等倾斜政策。 3、 央行:降准还有一定空间;存贷款利率进一步下行面临一定约束。 4、 我国天问三号任务计划2028年前后实施两次发射任务,实现火星样品返回地球。 5、 山东、四川、吉

每天掌握一个软测高级技巧:接口自动化神器apin进阶操作

之前写了一篇关于接口自动化框架 apin 入门使用是文章,主要介绍了 apin 的安装以及用例编写的方法。 今天这篇文章来给大家聊聊,apin 中的一些高级使用技巧。比如依赖接口的变量提取和引用,用例断言,以及函数工具的使用。 变量提取和引用 变量提取和引用主要是为了解决接口之间的参数依赖问题。 使用场景:接口 A 的参数中需要使用接口 B 返回的某个数据,那么就要在请求 B 接口之后,提

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 9月5日,星期四

每天一分钟,知晓天下事! 2024年9月5日 星期四 农历八月初三 1、 气象台发布台风红色预警:“摩羯”或为近十年影响海南最强台风,海口5日12时起在全市范围内分批启动“六停”措施。 2、 国家医保局:将人工耳蜗等高值医用耗材纳入采购范围。 3、 食用油散装运输强制性国标启动制订:要求专用容器+核查运输记录。 4、 包装不得超三层、不得使用红木等,中秋节前多地启动

10天计划:每天5小时睡眠

Day 1 - Day 2: 适应期 目标:适应减少睡眠时间的变化。 睡眠:00:00 - 05:00(5小时)早晨(5:00 - 7:00):轻度运动(瑜伽、拉伸、散步)、20分钟冥想。上午(7:00 - 12:00):专注高强度任务(需要逻辑思考或创作)。中午(12:00 - 13:00):午餐,午间20分钟小睡。下午(13:00 - 17:00):处理日常任务和会议,做较轻松的工作。晚上

每天分享一个FPGA开源代码(3)- I2C

​ I2C(Inter-Integrated Circuit)是一种两线式串行总线。   ​   一、主要特点 1. 简单性:只使用两根线,即串行数据线(SDA)和串行时钟线(SCL),减少了硬件连接的复杂性。 2. 多设备连接:可以连接多个具有 I2C 接口的设备到同一总线,每个设备都有唯一的地址,通过地址来区分和通信。 3. 双向通信:SDA 线允许数据在主设备和从设备之间双