LeetCode 279 Perfect Squares python

Поділитися
Вставка
  • Опубліковано 15 гру 2024

КОМЕНТАРІ • 4

  • @antm9957
    @antm9957 10 місяців тому +1

    Второе решение через set понравилось, спасибо, что поделился. 👍

  • @antm9957
    @antm9957 10 місяців тому +1

    Вчера всё же получилось похоже написать рекурсию. Два вопроса:
    1. @cache надо писать непосредственно перед кешируемой функцией? Он запоминает только её, а не всё подряд? А то сначала выдавало ошибку, написал в произвольном месте просто вверху.
    2. Как определить значение, по которому выходить из рекурсии? Я сделал по-другому, но ответ приняло. Решение ниже:
    def numSquares(self, n: int) -> int:
    ps = tuple(el**2 for el in range(int(n**0.5), 0, -1))
    @cache
    def helper(current_sum):
    if current_sum in ps:
    return 1
    else:
    return min(1 + helper(current_sum - el) for el in ps if el

    • @RunningProgrammer
      @RunningProgrammer  10 місяців тому

      @cache ставится непосредственно над именем функции или метода.
      @cache
      def helper(n):
      result = ...
      return result
      тоже что и
      cache = {}
      def helper(n):
      if n in chache:
      return cache[n]
      result = ...
      cache[n] = result
      return result

    • @RunningProgrammer
      @RunningProgrammer  10 місяців тому

      По 2 ) все индивидуально. надо смотреть и задаче чтобы не ушло в бесконечную рекурсию