題目出處
3723. Maximize Sum of Squares of Digits
難度
medium
題目分類
Math, Greedy
2026-10-14 一刷
個人範例程式碼 - 一刷 (2026/10/14)
class Solution:
def maxSumOfSquares(self, num: int, sum: int) -> str:
if sum > 9 * num:
return ""
count9, rest = divmod(sum, 9)
digits = ["9"] * count9
if rest:
digits.append(str(rest))
digits += ["0"] * (num - len(digits))
return "".join(digits)
算法說明
數學題,能夠組出最大的組合就是 99999… + 餘數 + 00000…,
只是需要注意的是細節的處理。
Time Complexity
O(num)
Space Complexity
O(num)
Boundary conditions
- 超出上限:透過 sum > 9 * num 擋
- 餘數處理:分兩種
2.1. 不需要補 0 也合法:如 “9”
2.2. 需要補 0:要計算好最後要補幾個。如:“99999X00000”