introduction
Considérez deux tableaux de même longueur, disons A = [0,1,0,2]
et B = [-1,1,2,2]
. Supposons que nous sachions que leur contenu est équivalent dans un certain sens, article par article:
0
est équivalent à-1
,1
est équivalent à1
,0
est équivalent à2
, et2
est équivalent à2
.
L'équivalence est transitive: -1
et 0
sont équivalentes, et 0
et 2
sont équivalentes, donc -1
et 2
sont également équivalentes. L' unification de A
et B
est le tableau où chaque élément de A
(ou B
) a été remplacé par le plus grand nombre qui lui est équivalent. Dans ce cas, l'unification serait [2,1,2,2]
.
La tâche
Écrivez un programme ou une fonction qui prend deux tableaux entiers non vides de longueur égale et génère leur unification. Vous pouvez également modifier l'une des entrées en place au lieu de revenir. Le nombre d'octets le plus bas gagne.
Cas de test
[0] [0] -> [0]
[1] [2] -> [2]
[0,-1] [-1,-1] -> [0,0]
[0,1,0] [2,1,0] -> [2,1,2]
[1,2,3] [0,0,1] -> [3,3,3]
[0,1,0,2] [-1,1,2,2] -> [2,1,2,2]
[1,0,1,-4] [-3,-1,-2,2] -> [1,0,1,2]
[1,2,3,-2] [1,0,-3,-2] -> [1,2,3,-2]
[-3,-2,-1,0,1] [-1,-1,-1,-1,-1] -> [1,1,1,1,1]
[-3,-2,-1,0,1] [2,-1,0,1,-3] -> [2,2,2,2,2]
[-3,5,5,3,1] [4,2,3,1,2] -> [4,5,5,5,5]
[4,0,2,-5,0] [0,4,-5,3,5] -> [5,5,3,3,5]
[-2,4,-2,3,2,4,1,1] [-2,4,1,2,2,3,1,-2] -> [1,4,1,4,4,4,1,1]
[-10,-20,-11,12,-18,14,-8,-1,-14,15,-17,18,18,-6,3,1,15,-15,-19,-19] [-13,6,-4,3,19,1,-10,-15,-15,11,6,9,-11,18,6,6,-5,-15,7,-11] -> [-8,14,18,14,19,14,-8,-1,-1,15,14,18,18,18,14,14,15,-1,18,18]
[20,15,2,4,-10,-4,-19,15,-5,2,13,-3,-18,-5,-6,0,3,-6,3,-17] [-18,7,6,19,-8,-4,-16,-1,13,-18,8,8,-16,17,-9,14,-2,-12,7,6] -> [20,15,20,19,-8,-4,20,15,17,20,17,17,20,17,-6,14,15,-6,15,20]