Qo‘llanma · Dasturlash
dynamic-programming
3 ta masala Masalalar ro‘yxatida
Nazariya
Dinamik dasturlash (DP): katta masalaning javobini kichik masalalar javobidan yig‘ish va har birini bir marta hisoblash.
- Holat:
dp[i]nimani bildiradi? (masalan, i summani to‘lash uchun eng kam tanga) - O‘tish:
dp[i] = min(dp[i - c] + 1 for c in coins) - Boshlang‘ich:
dp[0] = 0 - Javob:
dp[n]
INF = float("inf")
dp = [0] + [INF] * n
for i in range(1, n + 1):
for c in coins:
if c <= i:
dp[i] = min(dp[i], dp[i - c] + 1)
Zinapoya masalasi — eng oddiy DP: dp[i] = dp[i-1] + dp[i-2].
Easy
- Easy
Medium
- Medium
Hard
- Hard