Сложность: easy
В массиве arr значения находились в арифметической прогрессии: значения arr[i + 1] - arr[i] равны для всех 0 <= i < arr.length - 1.
Из массива arr было удалено значение, которое не было первым или последним значением в массиве.
Дан массив arr, вернуть удаленное значение.
Пример:
Input: arr = [5,7,11,13]
Output: 9
Explanation: The previous array was [5,7,9,11,13].
👨💻 Алгоритм:
1⃣Рассчитать разность difference между элементами арифметической прогрессии.
2⃣Начать с первого элемента массива и последовательно увеличивать ожидаемое значение на difference, проверяя каждый элемент массива.
3⃣Вернуть первое ожидаемое значение, которое не совпадает с текущим значением в массиве.
😎 Решение:
var missingNumber = function(arr) {
let n = arr.length;
let difference = (arr[n - 1] - arr[0]) / n;
let expected = arr[0];
for (let val of arr) {
if (val !== expected) {
return expected;
}
expected += difference;
}
return expected;
};Ставь 👍 и забирай 📚 Базу знаний