Полезные советы, которые упростят 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'), чтобы представить бесконечность, наибольшее число.

Заключение

Я надеюсь, что вы узнали что-то из этих советов, что сможете применить к следующему техническому собеседованию или работе по кодированию.