55
55
56
56
<!-- 这里可写通用的实现逻辑 -->
57
57
58
- 遍历矩阵,若出现元素与其左上角的元素不等的情况,返回 ` false ` 。
58
+ ** 方法一:一次遍历**
59
+
60
+ 遍历矩阵,若出现元素与其左上角的元素不等的情况,返回 ` false ` 。否则,遍历结束后返回 ` true ` 。
61
+
62
+ 时间复杂度 $O(m \times n)$,空间复杂度 $O(1)$。其中 $m$ 和 $n$ 分别为矩阵的行数和列数。
59
63
60
64
<!-- tabs:start -->
61
65
67
71
class Solution :
68
72
def isToeplitzMatrix (self , matrix : List[List[int ]]) -> bool :
69
73
m, n = len (matrix), len (matrix[0 ])
70
- for i in range (1 , m):
71
- for j in range (1 , n):
72
- if matrix[i][j] != matrix[i - 1 ][j - 1 ]:
73
- return False
74
- return True
74
+ return all (matrix[i][j] == matrix[i - 1 ][j - 1 ] for i in range (1 , m) for j in range (1 , n))
75
75
```
76
76
77
77
### ** Java**
@@ -94,6 +94,62 @@ class Solution {
94
94
}
95
95
```
96
96
97
+ ### ** C++**
98
+
99
+ ``` cpp
100
+ class Solution {
101
+ public:
102
+ bool isToeplitzMatrix(vector<vector<int >>& matrix) {
103
+ int m = matrix.size(), n = matrix[ 0] .size();
104
+ for (int i = 1; i < m; ++i) {
105
+ for (int j = 1; j < n; ++j) {
106
+ if (matrix[ i] [ j ] != matrix[ i - 1] [ j - 1 ] ) {
107
+ return false;
108
+ }
109
+ }
110
+ }
111
+ return true;
112
+ }
113
+ };
114
+ ```
115
+
116
+ ### **Go**
117
+
118
+ ```go
119
+ func isToeplitzMatrix(matrix [][]int) bool {
120
+ m, n := len(matrix), len(matrix[0])
121
+ for i := 1; i < m; i++ {
122
+ for j := 1; j < n; j++ {
123
+ if matrix[i][j] != matrix[i-1][j-1] {
124
+ return false
125
+ }
126
+ }
127
+ }
128
+ return true
129
+ }
130
+ ```
131
+
132
+ ### ** JavaScript**
133
+
134
+ ``` js
135
+ /**
136
+ * @param {number[][]} matrix
137
+ * @return {boolean}
138
+ */
139
+ var isToeplitzMatrix = function (matrix ) {
140
+ const m = matrix .length ;
141
+ const n = matrix[0 ].length ;
142
+ for (let i = 1 ; i < m; ++ i) {
143
+ for (let j = 1 ; j < n; ++ j) {
144
+ if (matrix[i][j] != matrix[i - 1 ][j - 1 ]) {
145
+ return false ;
146
+ }
147
+ }
148
+ }
149
+ return true ;
150
+ };
151
+ ```
152
+
97
153
### ** ...**
98
154
99
155
```
0 commit comments