Calculate the number of distinct possible values of the array after the repeated process of absolute difference between any 2 elements

Viewed 1237

This was a question asked in a mock test. So, I could not find any online evaluator for this.

Basically, you are provided with an array of elements. You can take any 2 elements and add their absolute difference back to the array.

The solution should be the number of distinct values in the array after infinite number of above given step.

Example 1-

Input [2,3,4,5]

Output - 5

Explanation: Since 3-2=1, this can be added to the set. So the total number of distinct values will be 5.

Example 2-

Input [1,100]

Output - 100

Explanation - 100-1 = 99 -> add this back to the set

Then, 99-1 = 98 -> add this back to the set.

After repeating the process, all the numbers from 1 to 100 will be present in the set.

I used a hash set to store the distinct elements to store the initial array elements and used 2 for loops to subtract the store the distinct result to the same array- But only after submitting my code, i realized, the distinct result should be again used for further subtraction.

Hence my answer was wrong.

Can anyone help me solve this ? Thanks in advance.

Edit : correcting the solution of first example to 5 instead of 6.

0 Answers
Related