Make Arrays Equal
Given two arrays of the same size: arr1
and arr2
, and you have to convert arr1
to arr2
with minimum operations (i.e make all elements of both arrays equal). Operation means increasing or decreasing some element by one. Note that the order of elements doesn’t matter.
Example:
arr1 = [8, 6, 1], arr2 = [6, 5, 5]
res = 7
: for example, decrease 8 three times, and increase 1 four times. 7 operations in total.
Example:
arr1 = [1,1,1,1,10], arr2 = [1,1,1,1,1]
res = 9
This problem is quite easy if you use a greedy approach: change elements in such a way that the smallest one from arr1
must be converted to the smallest from arr2
, to minimize the number of operations. Same way, every next element from arr1
must be converted to the appropriate element from arr2
. Note that there is not the only solution, and it’s possible that you can reach the minimum number of operations by reducing in some other way. But we are greedy, and we use this approach.
So, the algorithm is:
-
Sort both arrays to know the order of pairs of elements (
arr1[i]
,arr2[i]
) -
Count the answer as sum of absolute differences between elements
arr1[i]
andarr2[j]
Swipe to start coding
Complete the algorithm; follow the comments in code.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Resumir este capítulo
Explicar el código en file
Explicar por qué file no resuelve la tarea
Awesome!
Completion rate improved to 7.69
Make Arrays Equal
Desliza para mostrar el menú
Given two arrays of the same size: arr1
and arr2
, and you have to convert arr1
to arr2
with minimum operations (i.e make all elements of both arrays equal). Operation means increasing or decreasing some element by one. Note that the order of elements doesn’t matter.
Example:
arr1 = [8, 6, 1], arr2 = [6, 5, 5]
res = 7
: for example, decrease 8 three times, and increase 1 four times. 7 operations in total.
Example:
arr1 = [1,1,1,1,10], arr2 = [1,1,1,1,1]
res = 9
This problem is quite easy if you use a greedy approach: change elements in such a way that the smallest one from arr1
must be converted to the smallest from arr2
, to minimize the number of operations. Same way, every next element from arr1
must be converted to the appropriate element from arr2
. Note that there is not the only solution, and it’s possible that you can reach the minimum number of operations by reducing in some other way. But we are greedy, and we use this approach.
So, the algorithm is:
-
Sort both arrays to know the order of pairs of elements (
arr1[i]
,arr2[i]
) -
Count the answer as sum of absolute differences between elements
arr1[i]
andarr2[j]
Swipe to start coding
Complete the algorithm; follow the comments in code.
Solución
¡Gracias por tus comentarios!
Awesome!
Completion rate improved to 7.69single