Testing Dynamic Programming Implementations for Climbing Stairs in hello-algo
This test suite implements and validates various dynamic programming solutions for the classic climbing stairs problem in Go. The tests cover different approaches including backtracking, DFS, memoization, and dynamic programming, along with cost optimization variants.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
krahets/hello-algo
codes/go/chapter_dynamic_programming/climbing_stairs_test.go
// File: climbing_stairs_test.go
// Created Time: 2023-07-18
// Author: Reanon ([email protected])
package chapter_dynamic_programming
import (
"fmt"
"testing"
)
func TestClimbingStairsBacktrack(t *testing.T) {
n := 9
res := climbingStairsBacktrack(n)
fmt.Printf("爬 %d 阶楼梯共有 %d 种方案\n", n, res)
}
func TestClimbingStairsDFS(t *testing.T) {
n := 9
res := climbingStairsDFS(n)
fmt.Printf("爬 %d 阶楼梯共有 %d 种方案\n", n, res)
}
func TestClimbingStairsDFSMem(t *testing.T) {
n := 9
res := climbingStairsDFSMem(n)
fmt.Printf("爬 %d 阶楼梯共有 %d 种方案\n", n, res)
}
func TestClimbingStairsDP(t *testing.T) {
n := 9
res := climbingStairsDP(n)
fmt.Printf("爬 %d 阶楼梯共有 %d 种方案\n", n, res)
}
func TestClimbingStairsDPComp(t *testing.T) {
n := 9
res := climbingStairsDPComp(n)
fmt.Printf("爬 %d 阶楼梯共有 %d 种方案\n", n, res)
}
func TestClimbingStairsConstraintDP(t *testing.T) {
n := 9
res := climbingStairsConstraintDP(n)
fmt.Printf("爬 %d 阶楼梯共有 %d 种方案\n", n, res)
}
func TestMinCostClimbingStairsDPComp(t *testing.T) {
cost := []int{0, 1, 10, 1, 1, 1, 10, 1, 1, 10, 1}
fmt.Printf("输入楼梯的代价列表为 %v\n", cost)
res := minCostClimbingStairsDP(cost)
fmt.Printf("爬完楼梯的最低代价为 %d\n", res)
res = minCostClimbingStairsDPComp(cost)
fmt.Printf("爬完楼梯的最低代价为 %d\n", res)
}