Решения 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.Length
1^4
0 [я]
- Все номера
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”