【Leetcode】python - [3723] Maximize Sum of Squares of Digits 個人解法筆記

整理 LeetCode #3723 的個人解法筆記:解題思路、Time/Space Complexity 與邊界條件。

題目出處

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

  1. 超出上限:透過 sum > 9 * num 擋
  2. 餘數處理:分兩種
    2.1. 不需要補 0 也合法:如 “9”
    2.2. 需要補 0:要計算好最後要補幾個。如:“99999X00000”
Licensed under CC BY-NC-SA 4.0
最後更新 Oct 14, 2026
使用 Hugo 建立
主題 Stack 由 Jimmy 設計