乐至建设局网站,徐州煤棚网架公司,360老是提示危险网站,网站建设中 敬请期待 源码文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】
矩阵
二【题目难度】
简单
三【题目编号】
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 mmatrix.length n m a t r i x [ i ] . l e n g t h n matrix[i].length nmatrix[i].length 1 m , n 20 1 m, n 20 1m,n20 0 m a t r i x [ i ] [ j ] 99 0 matrix[i][j] 99 0matrix[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[i1][j1]){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[i1][j1]){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[i1][j1]:return Falsereturn TrueC语言版
class Solution {
public:bool isToeplitzMatrix(vectorvectorint 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[i1][j1]){return false;}}}return true;}
};十一【提交结果】 Java语言版 C语言版 Python语言版 C语言版