Рубрики
Без рубрики

Решение: пропущенный номер

Это является частью серии пояснений решения LeetCode (индекс). Если вам понравилось это решение или Фу … помечены алгоритмами, JavaScript, Java, Python.

Решения 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”