學習路線/陣列與雜湊

12. 整數轉羅馬數字

Medium

Integer to Roman

GreedyMath

題目描述

給定一個整數 num(1 ≤ num ≤ 3999),將其轉換為羅馬數字表示。需處理特殊的減法組合如 IV(4)、IX(9)、XL(40)、XC(90)、CD(400)、CM(900)。

LeetCode 12原題連結 →

解法思路

  1. 建立值-符號對照表,從大到小排列(含減法組合共 13 個)
  2. 使用貪婪策略:從最大值開始,盡可能多次使用該符號
  3. 每次將對應符號加入結果字串,並從 num 中減去該值
  4. 重複直到 num 為 0

複雜度分析

  • 時間複雜度:O(1)
  • 空間複雜度:O(1)
剩餘數值
58
結果字串

羅馬數字對照表(貪婪順序)

M1000
CM900
D500
CD400
C100
XC90
L50
XL40
X10
IX9
V5
IV4
I1
準備開始!目標將整數 58 轉換為羅馬數字。
1 / 20