1502. Can Make Arithmetic Progression From Sequence
Последовательность чисел называется арифметической прогрессией, если разница между любыми двумя последовательными элементами одинаковая.
Дан массив чисел 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# решение
сопоставлено/оригиналpublic 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++ решение
auto-draft, проверить перед отправкой#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 решение
сопоставлено/оригиналclass 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 решение
сопоставлено/оригиналvar 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 решение
сопоставлено/оригиналclass 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 True
Algorithm
Отсортируйте массив arr.
Запишите разницу первой пары элементов: diff = arr[1] - arr[0].
Итерируйтесь по отсортированному массиву начиная с i = 2, проверяя, равна ли разница каждой пары элементов значению diff. Если нет, верните False. Если итерация завершена без нахождения различий, верните True.
😎
Вакансии для этой задачи
Показаны активные вакансии с пересечением по тегам задачи.