給你一個 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為列)
雙循環(huán)暴力法求解
代碼
未翻譯版
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 {
// 循環(huán)行
for i in 0..<matrix.count - 1 {
// 循環(huán)對應(yīng)行中每一個元素
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 算法合集地址