题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给正整数 n 和 x,要求有多少无重复正整数数字的 x 次方之和恰好为 n。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def numberOfWays(self, n: int, x: int) -> int:
MOD = 1_000_000_007
f = [1] + [0]*n

for i in range(1, n+1):
v = i**x
if v > n:
break
for j in range(n, v-1, -1):
f[j] += f[j-v]
f[j] %= MOD
return f[n]%MOD