1. 托普利茨矩阵
时间:2021-02-23
本文章向大家介绍1. 托普利茨矩阵,主要包括1. 托普利茨矩阵使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
托普利茨矩阵
第一种方式
首先,第一种方法是循环每一个行的数据和上一行左上角的数据进行比较。代码如下
class Solution
{
/**
* @param Integer[][] $matrix
* @return Boolean
*/
function isToeplitzMatrix($matrix)
{
$lineNum = count($matrix);
for ($i = 0; $i < $lineNum; $i++) {
$colNum = count($matrix[$i]);
for ($j = 0; $j < $colNum; $j++) {
if (isset($matrix[$i - 1][$j - 1]) && $matrix[$i - 1][$j - 1] != $matrix[$i][$j]) {
return false;
}
}
}
return true;
}
}
第二种方式
一行一行的比较,第一行去掉第一个值和第二个去掉最后一个值进行比较。代码如下
class Solution {
/**
* @param Integer[][] $matrix
* @return Boolean
*/
function isToeplitzMatrix($matrix) {
$m = count($matrix);
$n = count($matrix[0]);
if($m==0) return true;
for($i=0;$i<$m-1;$i++){
if(array_slice($matrix[$i],0,$n-1)!=array_slice($matrix[$i+1],1)){
return false;
}
}
return true;
}
}
进阶版
对于进阶问题一,一次最多只能将矩阵的一行加载到内存中,我们将每一行复制到一个连续数组中,随后在读取下一行时,就与内存中此前保存的数组进行比较。
对于进阶问题二,一次只能将不完整的一行加载到内存中,我们将整个矩阵竖直切分成若干子矩阵,并保证两个相邻的矩阵至少有一列或一行是重合的,然后判断每个子矩阵是否符合要求。
原文地址:https://www.cnblogs.com/qiye5757/p/14437643.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php读取本地json文件的实例
- 为什么入门大数据选择Python而不是Java?
- Linux 中纠正拼写错误的Bash 命令方法
- php 读写json文件及修改json的方法
- Redis 在真实世界的 5 个用法
- php中输出json对象的值(实现方法)
- VMware虚拟机安装Fedora 27 Workstation正式版(图文)
- linux下安装mysql及mysql.sock问题
- ubuntu 16.04安装redis的两种方式教程详解(apt和编译方式)
- 互联网科技大佬推荐的12本必读书籍
- 浅谈MySQL的B树索引与索引优化小结
- oracle统计时间段内每一天的数据(推荐)
- 教你用Python创建微信聊天机器人
- python2.7 json 转换日期的处理的示例
- 使用vue中的v-for遍历二维数组的方法