贪心算法,表达的种类是有穷尽的,从大到小进行贪心就好。
class Solution { public String intToRoman(int num) { int[] nums= new int[]{1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] roman= new String[]{"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; int index = 0; StringBuilder demo = new StringBuilder(); while(index<13){ while(num>=nums[index]){ demo.append(roman[index]); num -= nums[index]; } index++; } return demo.toString(); } }
class Solution: def intToRoman(self, num: int) -> str: nums = [1000,900,500,400,100,90,50,40,10,9,5,4,1] roman= ["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"] result = "" idx = 0 while idx<13: while num>=nums[idx]: result += roman[idx] num -= nums[idx] idx +=1 return result
原文:https://www.cnblogs.com/huangzengrui/p/12408882.html