Сложность: 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⃣Вернуть первое ожидаемое значение, которое не совпадает с текущим значением в массиве.
😎 Решение:
class Solution {
public int missingNumber(int[] arr) {
int n = arr.length;
int difference = (arr[arr.length - 1] - arr[0]) / n;
int expected = arr[0];
for (int val : arr) {
if (val != expected) return expected;
expected += difference;
}
return expected;
}
}Ставь 👍 и забирай 📚 Базу знаний