【问题标题】:how many numbers of n digits in a mobile number pad手机数字键盘有多少个n位数
【发布时间】:2013-12-12 04:37:58
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: dynamic-programming backtracking


    【解决方案1】:

    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。将所有这些新元素添加到新列表中并返回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      相关资源
      最近更新 更多