Leetcode # 6922. Ways to Express an Integer as Sum of Powers
- 2023.07.23
- Uncategorized
- FloatingPointError
Solution
當你需要的是出現的次數而無關順序時
⇒ 使用 list Counter
Time Complexity: O()
Space Complexity: O()
(The input and output generally do not count towards the space complexity.)
class Solution:
def numberOfWays(self, n: int, x: int) -> int:
limit_n = n ** (1/x)
posible_sets = collections.Counter()
posible_sets[0] = 1
for i in range(1, int(limit_n + 1.1)): # 0.1 for Floating-point Error
new_posible_sets = collections.Counter()
for key in posible_sets:
new_result = key + i ** x
if new_result <= n:
new_posible_sets[new_result] += posible_sets[key]
for key in new_posible_sets:
posible_sets[key] += new_posible_sets[key]
return posible_sets[n] % (10 ** 9 + 7)
Last Updated on 2023/08/16 by A1go