Литкод задачки с решением на Swift ч.3:
🐬 Climbing Stairs: тебе нужно подняться на вершину лестницы, у которой n ступенек. Каждый раз ты можешь подняться на 1 или на 2 ступеньки. Сколько существует различных способов подняться наверх?
// Примеры
Input: n = 2 → 2
// 1. 1 + 1
// 2. 2
Input: n = 3 → 3
// 1. 1 + 1 + 1
// 2. 1 + 2
// 3. 2 + 1
Input: n = 4 → 5
Объяснение и решение: Это классическая задача на динамическое программирование (почти числа Фибоначчи)
dp[i] = количество способов добраться до i-й ступеньки
dp[i] = dp[i-1] + dp[i-2]
class Solution {
func climbStairs(_ n: Int) -> Int {
if n Bool {
guard s.count == t.count else { return false }
var counter = [Character: Int]()
for char in s {
counter[char, default: 0] += 1
}
for char in t {
guard let count = counter[char], count > 0 else { return false }
counter[char] = count - 1
}
return true
}
}
Эти две задачи тоже легко решаются примерно за 20 минут и отлично развивают мышление (динамика + хеш-таблица)
😍
🥰 @SnowBallCode
😍
🐬 Climbing Stairs: тебе нужно подняться на вершину лестницы, у которой n ступенек. Каждый раз ты можешь подняться на 1 или на 2 ступеньки. Сколько существует различных способов подняться наверх?
// Примеры
Input: n = 2 → 2
// 1. 1 + 1
// 2. 2
Input: n = 3 → 3
// 1. 1 + 1 + 1
// 2. 1 + 2
// 3. 2 + 1
Input: n = 4 → 5
Объяснение и решение: Это классическая задача на динамическое программирование (почти числа Фибоначчи)
dp[i] = количество способов добраться до i-й ступеньки
dp[i] = dp[i-1] + dp[i-2]
class Solution {
func climbStairs(_ n: Int) -> Int {
if n Bool {
guard s.count == t.count else { return false }
var counter = [Character: Int]()
for char in s {
counter[char, default: 0] += 1
}
for char in t {
guard let count = counter[char], count > 0 else { return false }
counter[char] = count - 1
}
return true
}
}
Эти две задачи тоже легко решаются примерно за 20 минут и отлично развивают мышление (динамика + хеш-таблица)
😍
🥰 @SnowBallCode
😍