1502. Can Make Arithmetic Progression From Sequence
leetcode easy
Task
Последовательность чисел называется арифметической прогрессией, если разница между любыми двумя последовательными элементами одинаковая.
Дан массив чисел 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.
C# solution
matched/originalpublic class Solution {
public bool CanMakeArithmeticProgression(int[] arr) {
Array.Sort(arr);
int diff = arr[1] - arr[0];
for (int i = 2; i < arr.Length; ++i) {
if (arr[i] - arr[i - 1] != diff) {
return false;
}
}
return true;
}
}C++ solution
auto-draft, review before submit#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public bool CanMakeArithmeticProgression(vector<int>& arr) {
sort(arr.begin(), arr.end());
int diff = arr[1] - arr[0];
for (int i = 2; i < arr.size(); ++i) {
if (arr[i] - arr[i - 1] != diff) {
return false;
}
}
return true;
}
}Java solution
matched/originalclass Solution {
public boolean canMakeArithmeticProgression(int[] arr) {
Arrays.sort(arr);
int diff = arr[1] - arr[0];
for (int i = 2; i < arr.length; ++i) {
if (arr[i] - arr[i - 1] != diff) {
return false;
}
}
return true;
}
}JavaScript solution
matched/originalvar canMakeArithmeticProgression = function(arr) {
arr.sort((a, b) => a - b)
const diff = arr[1] - arr[0]
for (let i = 2; i < arr.length; i++) {
if (arr[i] - arr[i - 1] != diff) {
return false
}
}
return true
}Python solution
matched/originalclass Solution:
def canMakeArithmeticProgression(self, arr: List[int]) -> bool:
arr.sort()
diff = arr[1] - arr[0]
for i in range(2, len(arr)):
if arr[i] - arr[i - 1] != diff:
return False
return TrueExplanation
Algorithm
Отсортируйте массив arr.
Запишите разницу первой пары элементов: diff = arr[1] - arr[0].
Итерируйтесь по отсортированному массиву начиная с i = 2, проверяя, равна ли разница каждой пары элементов значению diff. Если нет, верните False. Если итерация завершена без нахождения различий, верните True.
😎