Vous devez compter pour chaque cellule [i, j]
combien de cellule [i, j-1], cellule [i, j + 1], cellule [i-1, j], cellule [i + 1, j] (c.-à-d. les cellules adjacentes, c'est-à-dire les cellules voisines) contiennent un 'o'
.
Si count est un nombre pair (pour chaque cellule [i, j]) le résultat est "oui", sinon "non". (Ainsi, le test peut être terminé lorsque le premier nombre impair est détecté.) Ainsi, 0 est compté comme un nombre pair aussi (bien sûr).
La question possible:
Pour les cellules frontalières, certains des tests doivent être sautée pour empêcher l'accès hors-lié.
La solution utilise une astuce pour cela: Elle stocke l'entrée en commençant par les indices [1,1] au lieu des indices [0,0]. Cela laisse des cellules de bordure "inutilisées" autour de la matrice d'entrée réelle. L'avance: pas de tests pour les cellules à sauter sont nécessaires.
Comme la mémoire est remplie avec '*'
avant que les cellules de bordure inutilisées n'aient aucun effet négatif pour le comptage.
Pourquoi le tour est utilisé:
La plate-forme, nous l'espérons effectuer un accès en lecture aux cellules frontalières et comptant plus rapidement que le chèque (pour chaque cellule) si les cellules doivent être sautée (pour empêcher l'accès hors-lié).
Bonjour et bienvenue à SO. Veuillez prendre le [tour] (https://stackoverflow.com/tour) et lire la [page d'aide] (https://stackoverflow.com/help). Commencez par lire l'un de [ces livres C++] (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). – Ron
question devrait être autonome, c.-à-d. La partie importante devrait être dans la question et non derrière des liens qui peuvent casser à tout moment – user463035818
Pouvez-vous s'il vous plaît être précis sur votre question, si vous voulez de l'aide. Vous semblez ne pas comprendre le problème et cela ne vous aidera pas à comprendre la solution. – Acemad