我有四位数,“1”,“2”,“3”,“4”。
程序的输入是一个整数,只能包含上述4位数字。会有很多投入。
输入示例:1123,4123,4444
我需要计算符合以下规则的给定输入的排列数:
我可以使用任何类型的memoization来解决这个问题吗?我如何将其存储在二维阵列中?请给小费谢谢!
答案 0 :(得分:2)
由于您只对允许的排列数量感兴趣,因此大多数输入会产生相同的结果。
根据数字频率对输入进行分类导致4位输入只有5种不同的情况:
class examples
4 4444, 2222, ...
3 1 1211, 2232, ...
2 2 1331, 4422, ...
2 1 1 3413, 1123, ...
1 1 1 1 1234, 4231, ...
一旦你找到了每个案例的答案,就可以非常快速地处理任何新的输入。