TGViewer
Python | LeetCode Python | LeetCode @easy_python_task · 9.01K subscribers
Post #1697 1.01K
Задача: 1240. Tiling a Rectangle with the Fewest Squares
Сложность: hard

Если задан прямоугольник размером n x m, верните минимальное количество квадратов с целочисленными сторонами, которые покрывают этот прямоугольник.

Пример:
Input: n = 2, m = 3
Output: 3


👨‍💻 Алгоритм:

1⃣Инициализация рекурсивной функции:
Функция принимает размеры прямоугольника n x m.

2⃣Базовый случай:
Если n = 0 или m = 0, возвращаем 0, так как не осталось пространства для покрытия.

3⃣Рекурсивный случай:
Находим наибольший возможный квадрат, который может быть размещен в текущем прямоугольнике. Это квадрат со стороной min(n, m).
Размещаем этот квадрат в левом верхнем углу и рекурсивно покрываем оставшиеся три части:
Прямоугольник слева от квадрата.
Прямоугольник сверху от квадрата.
Прямоугольник справа и снизу от квадрата.

😎 Решение:
def minSquares(n, m):
if n == 0 or m == 0:
return 0

if n == m:
return 1

memo = {}

def solve(n, m):
if (n, m) in memo:
return memo[(n, m)]

if n == 0 or m == 0:
return 0
if n == m:
return 1

min_squares = float('inf')

for i in range(1, min(n, m) + 1):
min_squares = min(min_squares, 1 + solve(n - i, m) + solve(n, m - i) - solve(n - i, m - i))

memo[(n, m)] = min_squares
return min_squares

return solve(n, m)


Ставь 👍 и забирай 📚 Базу знаний
  • 🔥 1
  • 💊 1
More from @easy_python_task
  1. Oct 17, 2026Задача: 1539. Kth Missing Positive Number Сложность: easy Дан массив arr из положительных…
  2. Oct 16, 2026Задача: 1236. Web Crawler Сложность: medium Учитывая url startUrl и интерфейс HtmlParser,…
  3. Oct 15, 2026Задача: 1043. Partition Array for Maximum Sum Сложность: medium Если задан целочисленный м…
  4. Oct 15, 2026Задача: 1474. Delete N Nodes After M Nodes of a Linked List Сложность: easy Вам дано начал…
  5. Oct 14, 2026Задача: 977. Squares of a Sorted Array Сложность: easy Дан целочисленный массив nums, отсо…
  6. Oct 13, 2026Задача: 462. Minimum Moves to Equal Array Elements II Сложность: medium Дан массив целых ч…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →