LeetCode 12. 整数转罗马数字 Java/C++ 贪心算法
Posted 醉苼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 12. 整数转罗马数字 Java/C++ 贪心算法相关的知识,希望对你有一定的参考价值。
Java/C++ 贪心算法
Java:
class Solution {
public String intToRoman(int num) {
StringBuilder s = new StringBuilder();
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
String[] romans = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
for(int i = 0; i < values.length; i++) {
int value = values[i];
String roman = romans[i];
while(num >= value) {
s.append(roman);
num -= value;
}
if(num == 0) break;
}
return s.toString();
}
}
C++:
class Solution {
public:
string intToRoman(int num) {
string s;
int values[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
string romans[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
for(int i = 0; i < sizeof(values); i++) {
int value = values[i];
string roman = romans[i];
while(num >= value) {
s.append(roman);
num -= value;
}
if(num == 0) break;
}
return s;
}
};
以上是关于LeetCode 12. 整数转罗马数字 Java/C++ 贪心算法的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 12 - 整数转罗马数字 - [简单模拟]