Posted onEdited onInLeetCodeDisqus: Symbols count in article: 727Reading time ≈1 mins.
O(mn) time O(1) space 逐行扫描,每一行前n-1个应该和下一行后n-1个一样
1 2 3 4 5 6 7 8 9 10 11 12
classSolution { public: boolisToeplitzMatrix(vector<vector<int>>& matrix){ int m = size(matrix), n = size(matrix[0]); for (int r = 1; r < m; ++r) { for (int c = 1; c < n; ++c) { if (matrix[r][c] != matrix[r - 1][c - 1]) returnfalse; } } returntrue; } };
朴素解法,检查每个对角线
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
classSolution { public: boolisToeplitzMatrix(vector<vector<int>>& matrix){ int m = size(matrix), n = size(matrix[0]); for (int i = 1 - n; i <= m - 1; ++i) { bool set1st = false; int x = 0; for (int r = max(0, i); r <= min(m - 1, i + n - 1); ++r) { if (!set1st) { x = matrix[r][r - i]; set1st = true; } if (x != matrix[r][r - i]) returnfalse; } } returntrue; } };