Полезные советы, которые упростят Leetcoding на Python
Фон
Практикуя вопросы Leetcode с Python, я наткнулся на несколько советов и решил ими поделиться.
Итерации по массивам / строкам
Допустим, у нас есть массив чисел с именем nums
.
Обычно, когда мы перебираем массив или строку, мы делаем это: range(0, len(nums))
Первым параметром по умолчанию является 0, поэтому мы можем вместо него dorange(len(nums))
.
Изменение последовательности
Что, если мы хотим отсчитать, скажем, от 7 до 0?
Из документации Python: range(start, stop, [,step])
производит последовательность от start
(включительно) до stop
(исключая). Параметр optionalstep
определяет разницу между двумя соседними терминами в последовательности.
Параметр start
диапазона может быть больше, чем stop
, поэтому мы можем сделать что-то вроде range(7, 0)
. Но поскольку range()
создает последовательность от start
(включительно) до stop
(исключая), параметр stop
должен быть -1, поэтому последний член последовательности равен 0.
И поскольку мы создаем список в порядке убывания, передаваемый ему параметр step
должен быть -1.
Следовательно, мы имеем следующее:
Для более интуитивного способа создания последовательности от 7 до 0 мы можем сделать следующее: reversed(range(0, 8))
, который сначала создает последовательность от 0 до 7, а затем меняет последовательность.
Объявление переменных вместе в одной строке
Как правило, рекомендуется объявлять переменную только тогда, когда мы собираемся ее использовать.
Но если две переменные связаны, их удобно объявить в одной строке. Возьмем, например, row
и col
. В этом случае мы можем объявить их в одной строке вот так:
Это инициализирует как row
, так и col
равным 0.
Инициализация наибольшего и наименьшего числа
Чтобы инициализировать наименьшее число, мы можем сделать: float('-inf')
, чтобы получить отрицательную бесконечность, и float('inf')
, чтобы представить бесконечность, наибольшее число.
Заключение
Я надеюсь, что вы узнали что-то из этих советов, что сможете применить к следующему техническому собеседованию или работе по кодированию.