Решения LeetCode (161 часть серии)
Это является частью серии объяснений решения LeetCode ( index ). Если вам понравилось это решение или нашел его полезным, Пожалуйста, как этот пост и/или УПОТАТЬ Мое решение пост на форумах LeetCode Отказ
Проблема летета # 268 (просто): отсутствует номер
Описание:
( Перейти к : Идея решения Код : JavaScript | Python |. Java |. C ++
Учитывая массив Nums содержащий n Различные числа в диапазоне [0, n] Верните единственный номер в диапазоне, который отсутствует в массиве.
Продолжайте : Не могли бы вы реализовать решение, используя только O (1) Дополнительная космическая сложность и O (n) Сложность времени выполнения?
Примеры:
| Вход: | nums = [3,0,1] |
| Выход: | 2 |
| Объяснение: |
| Вход: | nums = [0,1] |
| Выход: | 2 |
| Объяснение: |
| Вход: | nums = [9,6,4,2,3,5,7,0,1] |
| Выход: | 8 |
| Объяснение: |
| Вход: | nums = [0] |
| Выход: | 1 |
| Объяснение: |
Ограничения:
N.Length1^40 [я]- Все номера
Numsуникальны.
Идея:
( Перейти к : Описание проблемы Код : JavaScript | Python |. Java |. C ++
Сумма чисел от 1 к N это N TH треугольный номер , определяется как N * (n + 1)/2 Отказ Тогда это означает, что мы можем просто найти разницу между N th треугольный номер и сумма Nums , что должно быть нашим пропущенным номером.
Код JavaScript:
( Перейти к : Описание проблемы Идея решения
const missingNumber = nums =>
nums.length * (nums.length + 1) / 2 - nums.reduce((a,c) => a + c)
Код Python:
( Перейти к : Описание проблемы Идея решения
class Solution:
def missingNumber(self, nums: List[int]) -> int:
return len(nums) * (len(nums) + 1) // 2 - sum(nums)
Java код:
( Перейти к : Описание проблемы Идея решения
class Solution {
public int missingNumber(int[] nums) {
return nums.length * (nums.length + 1) / 2 - Arrays.stream(nums).sum();
}
}
C ++ код:
( Перейти к : Описание проблемы Идея решения
class Solution {
public:
int missingNumber(vector& nums) {
return nums.size() * (nums.size() + 1) / 2 - accumulate(nums.begin(), nums.end(), 0);
}
};
Решения LeetCode (161 часть серии)
Оригинал: “https://dev.to/seanpgallivan/solution-missing-number-14e9”