Наименьший индекс, где сумма цифр равна индексу | LEETCODE 3550 | TCS | INFOSYS | HCL | Решение з...

105 подписчиков

12+
12+

4 дня назад

ПожаловатьсяНарушение авторских прав

105 подписчиков

12+
12+

4 дня назад

ПожаловатьсяНарушение авторских прав
12+
12+

4 дня назад

Задача LeetCode 3550 «Наименьшее число в индексе, сумма цифр которого равна индексу» — это задача для начинающих: пройтись по индексу один раз, извлечь сумму цифр каждого индекса и вернуть первый совпадающий индекс за один проход. Задача LeetCode: https://leetcode.com/problems/smallest-index-with-digit-sum-equal-to-index/description Решение (Java / Python / C++ / C): https://github.com/Shaanworkspace/YOUTUBE-DRIVE/blob/main/Leetcode_Daily/LC_3550_Smallest_Index_With_Digit_Sum_Equal_to_Index_All_Languages.md Присоединяйтесь к сообществу: Задача LeetCode 3550 «Наименьший индекс с суммой цифр, равной индексу» дает массив nums и запрашивает наименьший индекс i такой, что сумма цифр i равна нулю. nums[i] в точности равно i. Как только вы находите первый совпадающий индекс, вы немедленно возвращаете его, а если ни один индекс не совпадает, вы возвращаете минус единицу. Единственная реальная работа во всей задаче — это извлечение суммы цифр, выполняемое с помощью классического цикла по модулю: берём n по модулю 10, чтобы извлечь последнюю цифру, добавляем её к текущей сумме, делим n на 10, повторяем, пока n не станет равным нулю. В этом видео показан весь процесс точно так, как он записан: чтение описания задачи LeetCode 3550, отслеживание индекса образца массива, построение логики обхода и суммирования цифр, пробный запуск каждой итерации цикла while, построчное написание чистого кода на Java и, наконец, отправка решения, чтобы продолжить серию. Код на Java, Python, C++ и C приведён выше в файле решения. 00:00 — Почему вычисление суммы цифр по наименьшему индексу обманывает новичков Задача выглядит тривиальной, пока вы не поймёте, что сумма цифр должна равняться самому индексу. В этом вступительном абзаце простыми словами объясняется задача LeetCode 3550 и показано, почему важно возвращать наименьшее совпадение. 00:45 — Объяснение задачи «Наименьшее значение индекса: сумма цифр равна индексу» Точное объяснение: дан массив nums, найти наименьший индекс i, где сумма цифр nums[i] равна i. Объясняется значение входных данных и значение минус один. 01:30 — Обход массива: сравнение суммы цифр с индексом Основной план в одной строке: пройтись по каждому индексу, вычислить сумму цифр этого элемента, сравнить её с индексом, вернуть результат при первом совпадении. Почему для решения этой задачи достаточно одного прохода. 02:30 — Извлечение цифр с помощью цикла по модулю десяти Суть решения: n по модулю 10 отбрасывает последнюю цифру, добавляет её к сумме, n, делённое на 10, отбрасывает её. Повторяется, пока n не достигнет нуля. Шаблон, лежащий в основе любой задачи на сложение цифр. 03:30 — Пошаговое решение задачи на сумму цифр Полная трассировка первых итераций: сумма начинается с нуля, добавляется последняя цифра, n уменьшается за счет целочисленного деления, цикл завершается, когда n достигает нуля. Все значения переменных отображаются на экране. 04:45 — Возврат наименьшего индекса при совпадении суммы Момент сравнения: если сумма равна i, немедленно вернуть i и остановиться. В противном случае продолжать движение к следующему элементу. Почему ранний возврат гарантирует наименьший индекс. 05:30 — Построчное решение задачи на сумму цифр в Java Полная реализация на Java: цикл for по nums, переменная value, сумма инициализируется нулем, цикл while с делением по модулю, проверка на равенство, окончательный возврат минус один. 06:30 — Продолжение серии успешных отправок и принятых заданий на LeetCode Отправка задания на LeetCode 3550, просмотр всех пройденных тестовых случаев и завершение серии с сохранением результата. Итоговый обзор и информация о том, где найти код на всех четырех языках. Часто задаваемые вопросы В1: Что на самом деле спрашивает оператор «Наименьший индекс с суммой цифр, равной индексу»? О1: Он спрашивает о наименьшем индексе i, сумма цифр которого равна i. Вы сканируете индексы, начиная с нуля, и возвращаете первый индекс, где это условие выполняется, в противном случае возвращаете минус один. В2: Как вычислить сумму цифр числа в коде? О2: Используйте цикл while с модулем: пока n больше нуля, прибавляйте n по модулю 10 к сумме и делите n на 10. Это удаляет цифры справа налево, пока ничего не останется. В3: Почему решение возвращает минус один в конце? О3: Минус один — это сигнал об отсутствии совпадения. Если цикл завершается без индекса, сумма цифр которого равна индексу, то правильного ответа нет, поэтому возвращается минус один. В4: Какова временная и пространственная сложность этого подхода? A4: Время выполнения O(n × d), где n — длина массива, а d — количество цифр в каждом числе, а объем памяти O(1), поскольку используется лишь несколько целочисленных переменных. Q5: Что происходит, когда элемент равен нулю по индексу ноль? A5: Цикл while пропускается, поэтому сумма остается равной нулю, а ноль равен индексу ноль, поэтому возвращается индекс ноль. Логика обраб...

Название:

Наименьший индекс, где сумма цифр равна индексу | LEETCODE 3550 | TCS | INFOSYS | HCL | Решение з...

Категория:

Разное