美文网首页
IOS 算法(基础篇) ----- 托普利茨矩阵

IOS 算法(基础篇) ----- 托普利茨矩阵

作者: ShawnAlex | 来源:发表于2021-02-22 09:37 被阅读0次

给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵

例子

输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
输出:true

exp

解释:
在上述矩阵中, 其对角线为:
"[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]"。
各条对角线上的所有元素均相同, 因此答案是 True 。

输入:matrix = [[1,2],[2,2]]
输出:false
解释:
对角线 "[1, 2]" 上的元素不同。

解题思路

按照题意我们可以理解成

matrix[i][j] 与 matrix[i+1][j+1] 是否相等的问题

(i为行, j为列)

双循环暴力法求解

代码

未翻译版

    func isToeplitzMatrix(_ matrix: [[Int]]) -> Bool {

        for i in 0..<matrix.count - 1 {
            for j in 0..<matrix[i].count - 1 {
            
                if matrix[i+1][j+1] != matrix[i][j] {
                    return false;
                }
                
            }
        }

        return true;
    }

翻译版

    func isToeplitzMatrix(_ matrix: [[Int]]) -> Bool {

        // 循环行
        for i in 0..<matrix.count - 1 {
            // 循环对应行中每一个元素
            for j in 0..<matrix[i].count - 1 {
                // 判断是否与对角线元素相等
                if matrix[i+1][j+1] != matrix[i][j] {
                    // 不相等返回false
                    return false;
                }
                
            }
        }
        // 其他情况返回true
        return true;
    }

题目来源:力扣(LeetCode) 感谢力扣爸爸 :)
IOS 算法合集地址

相关文章

网友评论

      本文标题:IOS 算法(基础篇) ----- 托普利茨矩阵

      本文链接:https://www.haomeiwen.com/subject/bprhfltx.html