Oui, il y a plus rapide que ces deux boucles imbriquées.
Mais d'abord, il faut que les deux listes soient triées.
Vous trouverez facilement des algorithmes de tri performants.
Puis, on fait une seule boucle sur les deux ensembles jusqu'à ce que l'on ait plus d'éléments.
C'est l'équivalent de deux boucles qui se suivent (au lieu d'être imbriquées).
Dans cette grande boucle, on va prendre un élément de chaque ensemble.
On les compare. On garde le plus petit, et on avance au prochain élément de l'ensemble où se trouvait le plus petit.
Si il n'y a pas de plus petit, c'est donc que les deux éléments sont égaux. Alors, on n'en garde qu'un seul, et on fait avancer les deux listes.
C'est ça l'astuce.
Si les listes sont très petites, le tri initial peut être handicapant. Mais dès que les listes commencent à avoir plus d'une vingtaine d'éléments environ, cela vaut le coup.
D'ailleurs, si vous voulez le faire manuellement, vous allez vite penser à la solution du tri initial des listes.