A sequence of numbers is called an arithmetic progression if the difference between any two consecutive elements is the same.
Given an array of numbers arr, return true if the array can be rearranged to form an arithmetic progression. Otherwise, return false.
Example
Input: arr = [3,5,1]
Output: true
Explanation: We can reorder the elements as [1,3,5] or [5,3,1] with differences 2 and -2 respectively, between each consecutive elements.
Solution
var canMakeArithmeticProgression = function (arr) {
// sort the array
arr.sort((a, b) => a - b);
// find the difference between the first two elements
let diff = arr[1] - arr[0];
// iterate through the array and check if the difference between any two consecutive elements is the same
for (let i = 1; i < arr.length; i++) {
// if not, return false
if (arr[i] - arr[i - 1] !== diff) {
return false;
}
}
return true;
};