diff --git a/20201113/main.go b/20201113/main.go index 57f9e0a..2ccc06a 100644 --- a/20201113/main.go +++ b/20201113/main.go @@ -6,6 +6,7 @@ func main() { fmt.Println(isCompliance([]int{2, 3, 3, 2, 4})) fmt.Println(isCompliance([]int{3, 3, 2, 4})) fmt.Println(isCompliance([]int{4, 5, 1, 2})) + fmt.Println(isCompliance([]int{5, 1, 2, 3})) } func isCompliance(nums []int) bool { diff --git a/20201113/main_test.go b/20201113/main_test.go index 7742528..4924ae7 100644 --- a/20201113/main_test.go +++ b/20201113/main_test.go @@ -21,6 +21,11 @@ func Test_isCompliance(t *testing.T) { args{[]int{4, 2, 1}}, false, }, + { + "example_3", + args{[]int{5, 1, 2, 3}}, + true, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/20201114/main.go b/20201114/main.go new file mode 100644 index 0000000..1aca8b3 --- /dev/null +++ b/20201114/main.go @@ -0,0 +1,23 @@ +package main + +import "fmt" + +var steps = []int{1, 2} + +func main() { + fmt.Println("count:", climbingStairs(100, steps)) +} + +func climbingStairs(n int, step []int) int { + if n <= 1 { + return 1 + } + pre1 := 1 + pre2 := 1 + for i := 2; i <= n; i++ { + cur := pre1 + pre2 + pre2 = pre1 + pre1 = cur + } + return pre1 +} diff --git a/20201114/main_test.go b/20201114/main_test.go new file mode 100644 index 0000000..3a4b443 --- /dev/null +++ b/20201114/main_test.go @@ -0,0 +1,33 @@ +package main + +import "testing" + +func Test_climbingStairs(t *testing.T) { + type args struct { + n int + step []int + } + tests := []struct { + name string + args args + want int + }{ + { + "1", + args{2, []int{1, 2}}, + 2, + }, + { + "3", + args{3, []int{1, 2}}, + 3, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := climbingStairs(tt.args.n, tt.args.step); got != tt.want { + t.Errorf("climbingStairs() = %v, want %v", got, tt.want) + } + }) + } +}