基本資料#
難易度: easy 第一次嘗試:2025-12-23
- 提交紀錄:Accepted(C++,一次通過)
解題思路#
走過每個位數,積從 1 開始乘、和從 0 開始加,回傳 積 - 和。
我的解法#
我當時用 C++ 的 to_string 走位數,這裡放等價的 Python:
class Solution:
def subtractProductAndSum(self, n: int) -> int:
product, total = 1, 0
while n:
d = n % 10
product *= d
total += d
n //= 10
return product - total
複雜度#
時間 O(d),空間 O(1)。
要特別避免的錯誤#
- 積的初始值是 1,不是 0。
面試口說整理#
用 % 10 一位一位拿出來,同時累積積和和,最後相減。時間 O(d)。
