1228. Missing Number In Arithmetic Progression
В массиве 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].
C# решение
сопоставлено/оригиналpublic class Solution {
public int MissingNumber(int[] arr) {
int n = arr.Length;
int difference = (arr[n - 1] - arr[0]) / n;
int expected = arr[0];
foreach (int val in arr) {
if (val != expected) {
return expected;
}
expected += difference;
}
return expected;
}
}
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 int MissingNumber(vector<int>& arr) {
int n = arr.size();
int difference = (arr[n - 1] - arr[0]) / n;
int expected = arr[0];
foreach (int val in arr) {
if (val != expected) {
return expected;
}
expected += difference;
}
return expected;
}
}
Java решение
сопоставлено/оригинал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;
}
}
JavaScript решение
сопоставлено/оригинал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;
};
Go решение
сопоставлено/оригиналfunc missingNumber(arr []int) int {
n := len(arr)
difference := (arr[n-1] - arr[0]) / n
expected := arr[0]
for _, val := range arr {
if val != expected {
return expected
}
expected += difference
}
return expected
}
Algorithm
Рассчитать разность difference между элементами арифметической прогрессии.
Начать с первого элемента массива и последовательно увеличивать ожидаемое значение на difference, проверяя каждый элемент массива.
Вернуть первое ожидаемое значение, которое не совпадает с текущим значением в массиве.
😎
Вакансии для этой задачи
Показаны активные вакансии с пересечением по тегам задачи.
Активных вакансий пока нет.