En supposant que vous avez deux listes d'articles uniques et l'ordre n'a pas d'importance, vous pouvez penser à eux à la fois comme des ensembles plutôt que des listes
Si vous pensez d'un diagramme de Venn, avec la liste A comme un cercle et liste B comme l'autre, puis l'intersection de ces deux est le pool constant.
Supprimer tous les éléments de cette intersection de A et B, et tout ce qui reste dans A a été supprimé, tandis que tout ce qui reste dans B a été ajouté.
Ainsi, itérer A la recherche de chaque élément B. Si vous le trouvez, retirez-le de A et B
A est une liste de choses qui ont été supprimés, et B est une liste de choses qui ont été ajoutés
Je pense ...
[modifier] Ok, avec la nouvelle restriction "à seulement 2 conteneurs", la même chose encore:
foreach(A) {
if(eleA NOT IN B) {
DELETED
}
}
foreach(B) {
if(eleB NOT IN A) {
ADDED
}
}
Ensuite, vous n'êtes pas constru cting une nouvelle liste, ou détruire vos anciennes ... mais cela prendra plus de temps que dans l'exemple précédent, vous pourriez simplement boucler la liste plus courte et enlever les éléments du plus long. Ici, vous devez faire les deux listes
Un je dirais ma première solution n'a pas utilisé 4 conteneurs, il vient de détruire deux ;-)
Pourriez-vous préciser votre question. Qu'est-ce qu'un algorithme pour calculer l'ajout et le retrait? ça n'a pas trop de sens ... – jbleners
Ce n'est pas vraiment un site de "discussion". Peut-être pourriez-vous lire la FAQ. –
Le «AN» est lié à l'avis. Un par réponse? –