一个手机号码板中有多少个n位数字



如果我们得到一部带有数字键盘的手机
9 8 7
6 5 4
3 2 1
*0#

和一个数字n,那么我们可以在键盘上键入n位数的多少个数字,我们不能从以前选择的数字向对角线移动,也就是说,如果我们键入了9,我可以选择的下一个否是8或6。同样,像082这样的数字将被视为2位数字,而不是3位数字。

示例测试用例
输入n=1输出=9
输入n=2输出=25

我无法为它制定一个动态编程/回溯解决方案。

f(n)为由n数字组成的所有序列的列表

  • 基本情况很简单:f(1) = [ 1, 2, ..., 9 ]
  • 在一般情况下,如何从f(n-1)计算f(n)?只需在f(n-1)的元素上循环并检查最后一个数字。假设f(2)包含85,则f(3)应包含852、854、856和858。将所有这些新元素添加到新列表中并返回

最新更新