12. 整數轉羅馬數字
MediumInteger to Roman
GreedyMath
題目描述
給定一個整數 num(1 ≤ num ≤ 3999),將其轉換為羅馬數字表示。需處理特殊的減法組合如 IV(4)、IX(9)、XL(40)、XC(90)、CD(400)、CM(900)。
LeetCode 12原題連結 →解法思路
- 建立值-符號對照表,從大到小排列(含減法組合共 13 個)
- 使用貪婪策略:從最大值開始,盡可能多次使用該符號
- 每次將對應符號加入結果字串,並從 num 中減去該值
- 重複直到 num 為 0
複雜度分析
- 時間複雜度:O(1)
- 空間複雜度:O(1)
剩餘數值
58
結果字串
—
羅馬數字對照表(貪婪順序)
M1000
CM900
D500
CD400
C100
XC90
L50
XL40
X10
IX9
V5
IV4
I1
準備開始!目標將整數 58 轉換為羅馬數字。
1 / 20