【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(mn) m 、 n m、n mn分别为传入数组的行数和列数
  • 空间复杂度: O ( 1 ) O(1) O(1)

十【代码实现】

  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;}
}
  1. 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;
}
  1. 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
  1. 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;}
};

十一【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

  4. C++语言版
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

FPGA项目设计:数字时钟

项目要求&#xff1a; 设计一个数字时钟&#xff0c;数码管前两位显示小时&#xff0c;数码管中间两位显示分钟&#xff0c;数码管后面两位显示秒。 项目设计&#xff1a; 系统框架图&#xff1a; 计数模块时序图&#xff1a; 代码实现&#xff1a; 计数模块&#xff1a; /…

通向架构师的道路之apache_tomcat_https应用

一、总结前一天的学习 通过上一章我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构&#xff0c;并且亲手通过Apache的Http Server与Tomcat6进行了整合的实验。 这样的架构的好处在于&#xff1a; 减轻App Server端的压力&#xff0c;用Web Server来分压…

Linux下基于Dockerfile构建镜像应用(1)

目录 基于已有容器创建镜像 Dockerfile构建SSHD镜像 构建镜像 测试容器 可以登陆 Dockerfile构建httpd镜像 构建镜像 测试容器 Dockerfile构建nginx镜像 构建镜像 概述&#xff1a; Docker 镜像是Docker容器技术中的核心&#xff0c;也是应用打包构建发布的标准格式。…

计算机视觉与图形学-神经渲染专题-ConsistentNeRF

摘要 Neural Radiance Fields (NeRF) 已通过密集视图图像展示了卓越的 3D 重建能力。然而&#xff0c;在稀疏视图设置下&#xff0c;其性能显着恶化。我们观察到&#xff0c;在这种情况下&#xff0c;学习不同视图之间像素的 3D 一致性对于提高重建质量至关重要。在本文中&…

在linux上面部署activemq

1、下载 网址&#xff1a;ActiveMQ 注意&#xff1a;新版本5.17起 要求jdk11, 5.16兼容jdk8, 所以&#xff0c;确保已经安装 java11 或以上的版本 这里安装较新版&#xff1a;5.18.2&#xff0c;已经安装了java17 如何安装jdk17,请详见我的另一篇文章&#xff1a;linux…

Git分布式版本控制工具和GitHub(一)--简介

一.Git概述 1.Git简介 【1】什么是Git? Git就是代码版本管理工具。 【2】为什么要使用Git &#xff08;1&#xff09;版本控制 写代码就是不断写BUG的过程&#xff08;当然我们是不会这么说的&#xff09;&#xff0c;很多时候你写了100行代码之后&#xff0c;突然醒悟&…

Python高阶技巧 设计模式

设计模式 设计模式是一种编程套路&#xff0c;可以极大的方便程序的开发。 最常见、最经典的设计模式&#xff0c;就是我们所学习的面向对象了。 除了面向对象外&#xff0c;在编程中也有很多既定的套路可以方便开发&#xff0c;我们称之为设计模式&#xff1a; 单例、工厂…

windows系统之WSL 安装 Ubuntu

WSL windows10 以上才有这个wsl功能 WSL&#xff1a; windows Subsystem for Linux 是应用于Windows系统之上的Linux子系统 作用很简单&#xff0c;可以在Windows系统中获取Linux系统环境&#xff0c;并完全直连计算机硬件&#xff0c;无需要通过虚拟机虚拟硬件 Windows10的W…

41. linux通过yum安装postgresql

文章目录 1.下载安装包2.关闭内置PostgreSQL模块:3.安装postgresql服务:4.初始化postgresql数据库:5.设置开机自启动:6.启动postgresql数据库7.查看postgresql进程8.通过netstat命令或者lsof 监听默认端口54329.使用find命令查找了一下postgresql.conf的配置位置10.修改postgre…

DLA :pytorch添加算子

pytorch的C extension写法 这部分主要介绍如何在pytorch中添加自定义的算子(例如&#xff0c;您可能希望 使用您在论文中找到的新颖激活函数&#xff0c;或实现操作 您作为研究的一部分进行了开发。)&#xff0c;需要以下cuda基础。就总体的逻辑来说正向传播需要输入数据&#…

【消息中间件】原生PHP对接Uni H5、APP、微信小程序实时通讯消息服务

文章目录 视频演示效果前言一、分析二、全局注入MQTT连接1.引入库2.写入全局连接代码 二、PHP环境建立总结 视频演示效果 【uniapp】实现买定离手小游戏 前言 Mqtt不同环境问题太多&#xff0c;新手可以看下 《【MQTT】Esp32数据上传采集&#xff1a;最新mqtt插件&#xff08;支…

C# XML文档相关操作

C# 创建XML文档 XML文档知识点创建XML文档向XML中追加读取XML文档读取带属性的XML文档删除节点 XML文档知识点 XML 是可扩展的标记语言 XML:用来存储数据 注意点&#xff1a;XML是严格区分大小写的&#xff0c;XML标签也是成对出现的 XML文档有且只能有一个根节点&#xff1b;…

【Java】Springboot脚手架生成初始化项目代码

Springboot配置生成初始化项目代码可以通过mvn的mvn archetype:generate 和阿里云原生应用脚手架&#xff08;地址&#xff09;、spring官方提供的start初始化生成页面(地址&#xff09;。 1、mvn archetype:generate 通过mvn选择对应的脚手架可以快速生成初始化代码&#xf…

C高级--day2(用户相关操作 磁盘相关操作 shell脚本 修改环境变量)

#include<myhead.h>void fun(int n) {if(n>9){fun(n/10);printf("%d\t",n%10);putchar(10);return;}else{printf("%d\n",n%10);return;} } int main(int argc, const char *argv[]) {int num;printf("请输入一个整数&#xff1a;");sca…

2023华数杯数学建模A题思路分析 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…

CRM系统如何进行公海池线索分配自动化?

在销售过程中&#xff0c;线索分配是一个非常重要的环节。传统的线索分配方式往往是由销售主管手动进行&#xff0c;不仅效率低下&#xff0c;还存在着不公平、不灵活的问题。因此&#xff0c;许多企业通过CRM来实现公海池线索分配自动化。 1、基于规则的分配 CRM可以让用户设…

Java课题笔记~Maven基础

2、Maven 基础 2.1 Maven安装与配置 下载安装 配置&#xff1a;修改安装目录/conf/settings.xml 本地仓库&#xff1a;存放的是下载的jar包 中央仓库&#xff1a;要从哪个网站去下载jar包 - 阿里云的仓库 2.2 创建Maven项目

SequenceDiagram 查看代码时序图的利器,做技术方案必备!

前言 “ 无论是快速了解业务流程&#xff0c;还是快速的熟悉系统的业务代码逻辑&#xff0c;以及各个类和方法等的调用关系&#xff0c;时序图无疑是其中一种不可获取的简便快捷的方式。一起来了解下&#xff0c;IDEA如何快速生成时序图吧。” 工作中&#xff0c;经常需要绘制…

SpringBoot集成jasypt,加密yml配置文件

SpringBoot集成jasypt&#xff0c;加密yml配置文件 一、pom配置二、生成密文代码三、配置3.1、yml加密配置3.2、密文配置3.3、启动配置3.4、部署配置 四、遇到的一些坑 最新项目安全检测&#xff0c;发现配置文件中数据库密码&#xff0c;redis密码仍处理明文状态 一、pom配置…