【LeetCode每日一题】——766.托普利茨矩阵
文章目录
- 一【题目类别】
- 二【题目难度】
- 三【题目编号】
- 四【题目描述】
- 五【题目示例】
- 六【题目提示】
- 七【题目进阶】
- 八【解题思路】
- 九【时间频度】
- 十【代码实现】
- 十一【提交结果】
一【题目类别】
- 矩阵
二【题目难度】
- 简单
三【题目编号】
- 766.托普利茨矩阵
四【题目描述】
- 给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。
- 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。
五【题目示例】
-
示例 1:

- 输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
- 输出:true
- 解释:
- 在上述矩阵中, 其对角线为:
- “[9]”, “[5, 5]”, “[1, 1, 1]”, “[2, 2, 2]”, “[3, 3]”, “[4]”。
- 各条对角线上的所有元素均相同, 因此答案是 True 。
-
示例 2:

- 输入:matrix = [[1,2],[2,2]]
- 输出:false
- 解释:
- 对角线 “[1, 2]” 上的元素不同。
六【题目提示】
- m = = m a t r i x . l e n g t h m == matrix.length m==matrix.length
- n = = m a t r i x [ i ] . l e n g t h n == matrix[i].length n==matrix[i].length
- 1 < = m , n < = 20 1 <= m, n <= 20 1<=m,n<=20
- 0 < = m a t r i x [ i ] [ j ] < = 99 0 <= matrix[i][j] <= 99 0<=matrix[i][j]<=99
七【题目进阶】
- 如果矩阵存储在磁盘上,并且内存有限,以至于一次最多只能将矩阵的一行加载到内存中,该怎么办?
- 如果矩阵太大,以至于一次只能将不完整的一行加载到内存中,该怎么办?
八【解题思路】
- 本题的思路比较简单,我们无需逐个对角线去比较,只需要比较前一行除了最后一个元素和后一行除了第一个元素后剩余的元素是否想等
- 因为如果是托普利茨矩阵的话,下一行一定是上一行向右移动一个位置之后形成的矩阵,所以上一行的最后一个元素和下一行的第一个元素,可以无须判断,因为上一行的最后一个元素被移出了,下一行的第一个元素单独成为对角线
- 最后返回结果即可
九【时间频度】
- 时间复杂度: O ( m ∗ n ) O(m * n) O(m∗n), m 、 n m、n m、n分别为传入数组的行数和列数
- 空间复杂度: O ( 1 ) O(1) O(1)
十【代码实现】
- Java语言版
class Solution {public boolean isToeplitzMatrix(int[][] matrix) {int m = matrix.length;int n = matrix[0].length;for(int i = 0;i < m - 1;i++){for(int j = 0;j < n - 1;j++){if(matrix[i][j] != matrix[i+1][j+1]){return false;}}}return true;}
}
- C语言版
bool isToeplitzMatrix(int** matrix, int matrixSize, int* matrixColSize)
{int m = matrixSize;int n = matrixColSize[0];for(int i = 0;i < m - 1;i++){for(int j = 0;j < n - 1;j++){if(matrix[i][j] != matrix[i+1][j+1]){return false;}}}return true;
}
- Python语言版
class Solution:def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:m = len(matrix)n = len(matrix[0])for i in range(m - 1):for j in range(n - 1):if matrix[i][j] != matrix[i+1][j+1]:return Falsereturn True
- C++语言版
class Solution {
public:bool isToeplitzMatrix(vector<vector<int>>& matrix) {int m = matrix.size();int n = matrix[0].size();for(int i = 0;i < m - 1;i++){for(int j = 0;j < n - 1;j++){if(matrix[i][j] != matrix[i+1][j+1]){return false;}}}return true;}
};
十一【提交结果】
-
Java语言版

-
C语言版

-
Python语言版

-
C++语言版

相关文章:
【LeetCode每日一题】——766.托普利茨矩阵
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 矩阵 二【题目难度】 简单 三【题目编号】 766.托普利茨矩阵 四【题目描述…...
第三方材料检测实验室LIMS系统源码 lims源码
实验室LIMS系统采用国际规范的业务管理流程和严格的质量控制体系,对每个检测流程节点采用 “人、机、料、法、环、测”进行质量控制,可记录,可追溯。强大的数据查询和统计分析能力,提高工作效率;自动化地采集实验室原始…...
【数据结构与算法——TypeScript】数组、栈、队列、链表
【数据结构与算法——TypeScript】 算法(Algorithm)的认识 解决问题的过程中,不仅仅 数据的存储方式会影响效率,算法的优劣也会影响效率 什么是算法? 定义: 🟢 一个有限指令集,每条指令的描述不依赖于言语…...
[运维|中间件] Apache APISIX使用笔记
简介 Apache APISIX 是一个现代化、高性能、可扩展的开源 API 网关和微服务管理平台。 安装 快速安装 curl -sL https://run.api7.ai/apisix/quickstart | sh...
Android Intent 使用(详细版)
经典好文推荐,通过阅读本文,您将收获以下知识点: 一、通过组件名启动 二、通过包名、类名启动 三、通过类启动 四、打电话 五、发短信 六、打开网页 七、播放音乐 八、打开图片 九、创建闹钟 十、创建定时器 十一、添加日历事件 十二、拍照 十三、打开Camera 十四、打开视频录…...
【Clion 2】多行TODO使用
一、TODO: 说明: 有时需要标记部分代码以供将来参考: 优化和改进的领域、可能的更改、要讨论的问题等等。 支持: TODO和FIXME小写和大写。这些模式可以在任何受支持的文件类型的行注释和块注释内使用。 创建TODO项 在要添加注释的代码行中…...
【运维】hive 终端突然不能使用:Hive Schema version does not match metastore‘s schema version
文章目录 一. 问题描述二. 常规排查1. 元数据库2. hive-site.xml相关meta连接信息检查 三. 正解 一. 问题描述 进入hive终端,执行如下命令报错: hive> show tables; FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: …...
P1049 [NOIP2001 普及组] 装箱问题
题目描述 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积。 现在从 n 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。 输入格式 第一行共一个整数 V&#…...
QCustomPlot获取选点坐标
QCustomPlot版本:Version: 2.1.1 设置点选择模式 customPlot->setInteractions(QCP::iSelectPlottables);2.绑定点击事件 connect(customPlot, &QCustomPlot::plottableClick, this, &CCustomPlot::onPlotClick);3.读取点位置 void CustomPlot::onP…...
Qt配置Android开发
1.使用Qt5.14.2 2.安装java和SDK,NDK 具体参考该博客【原创】基于Qt5.14的一站式安卓开发环境搭建_qt安卓开发环境搭建_Jamie.T的博客-CSDN博客 3.后续可能会遇到的问题: ①SDK配置问题: 若出现以下编译错误,是build-tools 2…...
花费7元训练自己的GPT 2模型
在上一篇博客中,我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多,主要在以下方面: 1. GPT 2把layer normalization放在每个decoder block的前…...
性能分析工具
性能分析工具 valgrind 交叉编译 android arm/arm64 平台 valgrind android32 #!/usr/bin/env bashexport NDKROOT~/opt/android-ndk-r14b/ export AR$NDKROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar export LD$NDKROO…...
1.netty介绍
1.介绍 是JBOSS通过的java开源框架是异步的,基于事件驱动(点击一个按钮调用某个函数)的网络应用框架,高性能高可靠的网络IO程序基于TCP,面向客户端高并发应用/点对点大量数据持续传输的应用是NIO框架 (IO的一层层封装) TCP/IP->javaIO和网络编程–>NIO—>Netty 2.应用…...
【Jmeter】压测mysql数据库中间件mycat
目录 背景 环境准备 1、下载Jmeter 2、下载mysql数据库的驱动包 3、要进行测试的数据库 Jmeter配置 1、启动Jmeter图形界面 2、加载mysql驱动包 3、新建一个线程组,然后如下图所示添加 JDBC Connection Configuration 4、配置JDBC Connection Configurati…...
leetcode原题 路径总和 I II III(递归实现)
路径总和 I : 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。…...
【css】css设置表格样式-边框线合并
<style> table, td, th {border: 1px solid black;//设置边框线 }table {width: 100%; }td {text-align: center;//设置文本居中 } </style> </head> <body><table><tr><th>Firstname</th><th>Lastname</th><t…...
使用Flutter的image_picker插件实现设备的相册的访问和拍照
文章目录 需求描述Flutter插件image_picker的介绍使用步骤1、添加依赖2、导入 例子完整的代码效果 总结 需求描述 在应用开发时,我们有很多场景要使用到更换图片的功能,即将原本的图像替换设置成其他的图像,从设备的相册或相机中选择图片或拍…...
数学建模体系
1评价类 主观求权重:层次分析法客观求权重:TOPSIS综合评价:典型相关分析 2预测插值算法拟合多元回归分析时间序列分析、ARCH和garch模型岭回归和lasso回归 3关系相关系数典型相关分析多元回归分析灰色关联分析 4图最短路径:迪杰斯…...
13.7 CentOS 7 环境下大量创建帐号的方法
13.7.1 一些帐号相关的检查工具 pwck pwck 这个指令在检查 /etc/passwd 这个帐号配置文件内的信息,与实际的主文件夹是否存在等信息, 还可以比对 /etc/passwd /etc/shadow 的信息是否一致,另外,如果 /etc/passwd 内的数据字段错…...
HTML5 Canvas(画布)
<canvas>标签定义图形,比如图表和其他图像,你必须用脚本来绘制图形。 在画布上( Canvas )画一个共红色矩形,渐变矩形,彩色矩形,和一些彩色文字。 什么是 Canvas? HTML5<c…...
不止于超市:用QGIS缓冲区+叠置分析,为你的奶茶店、自习室找个好位置
从奶茶店到自习室:QGIS空间分析赋能小微商业选址决策 走在街头,你是否好奇为什么某些奶茶店总是门庭若市,而几步之隔的同类店铺却冷冷清清?商业选址从来不是简单的"地段好"三个字能概括的。对于资金有限的小微创业者来说…...
Janus-Pro-7B开发者案例:基于7860 Web UI构建内部AI知识助手
Janus-Pro-7B开发者案例:基于7860 Web UI构建内部AI知识助手 1. 项目背景与价值 企业内部知识管理一直是个头疼的问题。各种文档、图片、报告散落在不同系统中,员工想要快速找到需要的信息往往需要花费大量时间。传统的搜索工具只能基于文字匹配&#…...
微信H5支付v3版Java实战:从零构建移动端支付解决方案
1. 微信H5支付的应用场景与优势 移动端支付已经成为现代商业不可或缺的一部分。微信H5支付作为微信支付生态中的重要一环,特别适合那些需要在非微信客户端浏览器中实现支付功能的场景。想象一下这样的画面:用户在手机浏览器中浏览你的电商网站ÿ…...
告别云端依赖:AnythingLLM本地Whisper实现完全离线语音转文字
告别云端依赖:AnythingLLM本地Whisper实现完全离线语音转文字 【免费下载链接】anything-llm The all-in-one AI productivity accelerator. On device and privacy first with no annoying setup or configuration. 项目地址: https://gitcode.com/GitHub_Trendi…...
Linux性能优化之上下文切换
写在前面 上下文切换因为会导致消耗大量的CPU资源,导致CPU升高,所以上下文切换也是最常见的性能杀手之一。本文就一起来看下这部分内容吧。 1:基础内容介绍 1.1:什么是上下文切换? CPU在执行的时候需要两部分的内容…...
清北博雅考研集训营:沉浸式封闭备考,为考研人铺就上岸之路
考研的赛道上,从来都不缺努力的人,缺的是科学的规划、优质的师资和沉浸式的备考环境。清北博雅教育集团深耕考研辅导领域十余载,凭借专业的教学体系、大咖级师资团队、完善的教学服务和亮眼的上岸成果,打造了专属考研人的集训营备…...
Simulink Test Sequence模块在复杂逻辑测试中的高效应用
1. Test Sequence模块入门:逻辑测试的瑞士军刀 第一次接触Simulink Test Sequence模块时,我正被一个汽车电子控制单元(ECU)的状态机测试折磨得焦头烂额。传统脚本测试需要编写大量重复代码,而Test Sequence就像突然出现的瑞士军刀,…...
Android USB串口通信终极指南:智能家居物联网项目实战
Android USB串口通信终极指南:智能家居物联网项目实战 【免费下载链接】usb-serial-for-android Android USB host serial driver library for CDC, FTDI, Arduino and other devices. 项目地址: https://gitcode.com/gh_mirrors/us/usb-serial-for-android …...
提升开发效率:Android Studio零障碍IDE本地化配置指南
提升开发效率:Android Studio零障碍IDE本地化配置指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 开发人员在使用…...
CodeMaker:让编码效率提升3倍的智能代码生成工具
CodeMaker:让编码效率提升3倍的智能代码生成工具 【免费下载链接】CodeMaker A idea-plugin for Java/Scala, support custom code template. 项目地址: https://gitcode.com/gh_mirrors/co/CodeMaker 一、核心价值:重新定义开发效率 你是否也曾…...
