Annuaire d'articles
- Un [catégorie de sujet]
- Deux [difficulté de la question]
- Trois [numéro de sujet]
- Quatre [description du titre]
- Cinq [exemples de sujet]
- Six [invite de sujet]
- Sept [sujet avancé]
- Huit [idées de résolution de problèmes]
- Neuf [fréquence temporelle]
- Dix [implémentation du code]
- Onze [résultats de la soumission]
Un [catégorie de sujet]
- matrice
Deux [difficulté de la question]
- Simple
Trois [numéro de sujet]
- 766. Matrice Toeplitz
Quatre [description du titre]
- On vous donne une matrice de matrice mxn. Renvoie true si cette matrice est une matrice Toeplitz ; sinon, renvoie false.
- Une matrice est une matrice de Toeplitz si les éléments de chaque diagonale du haut à gauche au bas à droite sont les mêmes.
Cinq [exemples de sujet]
-
Exemple 1:
- Entrée : matrice = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
- Sortie : vrai
- expliquer:
- Dans la matrice ci-dessus, sa diagonale vaut :
- "[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]"。
- Tous les éléments sur les diagonales respectives sont les mêmes, donc la réponse est Vrai.
-
Exemple 2 :
- Entrée : matrice = [[1,2],[2,2]]
- sortie : faux
- expliquer:
- Les éléments sur la diagonale "[1, 2]" sont différents.
Six [invite de sujet]
- m = = matrice . longueurm == matrice.longueurm==ma t r i x . longueur _ _ _ _ _
- n = = matrice [ je ] . longueurn == matrice[i].longueurn==ma t r je x [ je ] . longueur _ _ _ _ _
- 1 < = m, n < = 20 1 <= m, n <= 201<=moi ,n<=20
- 0 < = matrice [ je ] [ j ] < = 99 0 <= matrice[i][j] <= 990<=ma t r je x [ je ] [ j ]<=99
Sept [sujet avancé]
- Que se passe-t-il si la matrice est stockée sur disque et que la mémoire est limitée de sorte qu'au plus une ligne de la matrice peut être chargée en mémoire à la fois ?
- Que se passe-t-il si la matrice est si grande que seule une ligne incomplète peut être chargée en mémoire à la fois ?
Huit [idées de résolution de problèmes]
- L'idée de cette question est relativement simple. Nous n'avons pas besoin de comparer les diagonales une par une. Nous devons seulement comparer si les éléments restants, à l'exception du dernier élément de la ligne précédente et du premier élément de la ligne suivante, veulent attendez
- Parce que s'il s'agit d'une matrice Toeplitz, la ligne suivante doit être la matrice formée en déplaçant la ligne précédente vers la droite, donc le dernier élément de la ligne précédente et le premier élément de la ligne suivante n'ont pas besoin d'être jugés, car le ligne précédente Le dernier élément est supprimé, et le premier élément de la ligne suivante devient la diagonale seule
- Renvoie enfin le résultat
Neuf [fréquence temporelle]
- Complexité temporelle : O ( m ∗ n ) O(m * n)O ( m∗n ),m 、 nm 、 nm et n sont respectivement le nombre de lignes et de colonnes du tableau entrant
- Complexité spatiale : O ( 1 ) O(1)O ( 1 )
Dix [implémentation du code]
- version du langage Java
class Solution {
public boolean isToeplitzMatrix(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
for(int i = 0;i < m - 1;i++){
for(int j = 0;j < n - 1;j++){
if(matrix[i][j] != matrix[i+1][j+1]){
return false;
}
}
}
return true;
}
}
- version en langage C
bool isToeplitzMatrix(int** matrix, int matrixSize, int* matrixColSize)
{
int m = matrixSize;
int n = matrixColSize[0];
for(int i = 0;i < m - 1;i++)
{
for(int j = 0;j < n - 1;j++)
{
if(matrix[i][j] != matrix[i+1][j+1])
{
return false;
}
}
}
return true;
}
- Version en langage Python
class Solution:
def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:
m = len(matrix)
n = len(matrix[0])
for i in range(m - 1):
for j in range(n - 1):
if matrix[i][j] != matrix[i+1][j+1]:
return False
return True
- version du langage C++
class Solution {
public:
bool isToeplitzMatrix(vector<vector<int>>& matrix) {
int m = matrix.size();
int n = matrix[0].size();
for(int i = 0;i < m - 1;i++){
for(int j = 0;j < n - 1;j++){
if(matrix[i][j] != matrix[i+1][j+1]){
return false;
}
}
}
return true;
}
};
Onze [résultats de la soumission]
-
version du langage Java
-
version en langage C
-
Version en langage Python
-
version du langage C++