1277. Compter les sous-matrices carrées avec tous les uns
Difficulté :Moyen
Sujets :Array, Programmation dynamique, Matrice
Étant donné une matrice m * n de uns et de zéros, renvoie combien de carrés sous-matrices ont toutes des uns.
Exemple 1 :
Exemple 2 :
Contraintes :
Indice :
Solution :
Nous pouvons utiliser la Programmation dynamique (DP) pour garder une trace du nombre de sous-matrices carrées avec toutes celles qui peuvent se terminer à chaque cellule de la matrice. Voici la démarche pour y parvenir :
Définition de la matrice DP :
Formule de transition :
Pour chaque cellule (i, j) de la matrice :
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
- If `matrix[i][j]` is 0, `dp[i][j]` will be 0 because a square of ones cannot end at a cell with a zero.
Compter tous les carrés :
Complexité temporelle :
Implémentons cette solution en PHP : 1277. Compter les sous-matrices carrées avec tous les uns
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
Cette solution est efficace et répond aux contraintes fournies dans le problème.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!