Leetcode 766. 託普利茨矩陣(可以,一次過)
阿新 • • 發佈:2022-05-27
給你一個 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 == matrix.length
- n == matrix[i].length
- 1 <= m, n <= 20
- 0 <= matrix[i][j] <= 99
進階:
- 如果矩陣儲存在磁碟上,並且記憶體有限,以至於一次最多隻能將矩陣的一行載入到記憶體中,該怎麼辦?
- 如果矩陣太大,以至於一次只能將不完整的一行載入到記憶體中,該怎麼辦?
Code:
class Solution { public: bool isToeplitzMatrix(vector<vector<int>>& matrix) { for(int i=0;i<matrix.size();i++) { vector<int>sub=matrix[i]; for(int j=0;j<sub.size();j++) { if((i+1)<matrix.size()&&((j+1)<sub.size())) { if(matrix[i][j]!=matrix[i+1][j+1]) { return false; } } } } return true; } };