Categorygithub.com/blueBlue0102/LeetCode-Goleetcode0967.Numbers-With-Same-Consecutive-Differences
package
0.0.0-20241125063422-a7e1e0bf04b0
Repository: https://github.com/blueblue0102/leetcode-go.git
Documentation: pkg.go.dev

# README

967. Numbers With Same Consecutive Differences

https://leetcode.com/problems/numbers-with-same-consecutive-differences/

須注意當 k 很小時,組合可能就會有很多種
譬如若 n=3, k=1,則以 1 開頭的答案可能就會有 121,123,101

所以需要進行枚舉,這是一個 Backtracking 的題目
因此需要先構思出樹的模樣

關於樹的橫向,除了開頭不能是 0 以外,之後的每位數皆可放置 0 每個節點都要探討 +k-k 之後的節點是否存在(0 <= +k/-k <= 9
樹的深度取決於 n

graph TB
    N0((.))
    N0((.))-->N11((1))-->N211((1+k?))
    N11((1))-->N212((1-k?))
    N0((.))-->N12((2))-->N221((1+k?))
    N12((2))-->N222((1-k?))
    N0((.))-->N13((3))-->N231((1+k?))
    N13((3))-->N232((1-k?))
    N0((.))-->N14((4))-->N241((1+k?))
    N14((4))-->N242((1-k?))
    N0((.))-->N15((5))-->N251((1+k?))
    N15((5))-->N252((1-k?))
    N0((.))-->N16((6))-->N261((1+k?))
    N16((6))-->N262((1-k?))
    N0((.))-->N17((7))-->N271((1+k?))
    N17((7))-->N272((1-k?))
    N0((.))-->N18((8))-->N281((1+k?))
    N18((8))-->N282((1-k?))
    N0((.))-->N19((9))-->N291((1+k?))
    N19((9))-->N292((1-k?))

Takeaway

  • Backtracking