Сложность: easy
Последовательность чисел называется арифметической прогрессией, если разница между любыми двумя последовательными элементами одинаковая.
Дан массив чисел arr, верните true, если массив можно переставить так, чтобы он образовал арифметическую прогрессию. В противном случае верните false.
Пример:
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.
👨💻 Алгоритм:
1⃣Отсортируйте массив arr.
2⃣Запишите разницу первой пары элементов: diff = arr[1] - arr[0].
3⃣Итерируйтесь по отсортированному массиву начиная с i = 2, проверяя, равна ли разница каждой пары элементов значению diff. Если нет, верните False. Если итерация завершена без нахождения различий, верните True.
😎 Решение
class Solution {
func canMakeArithmeticProgression(_ arr: [Int]) -> Bool {
let arr = arr.sorted()
let diff = arr[1] - arr[0]
for i in 2..<arr.count {
if arr[i] - arr[i - 1] != diff {
return false
}
}
return true
}
}Ставь 👍 и забирай 📚 Базу знаний