ローマ数字貪欲にleetcode 12整数

額は、貪欲2を取り付けましたか?

これは、局所最適化問題:大小を使用することはありません「の数は、ローマが示す」を使用します。

まず、すべての基礎構築、その後の比較を降順、ローマ数字を

比較が唯一1000,900ですので、...限られており、いくつかの問題、構築テーブルマップ<整数、文字列>

次に、キーの昇順にソートマップのデフォルトのインストール値 ..

私は、小さなに大きな考えるreverse_iterator

クラス解決{
 パブリック文字列 intToRoman(INT NUM){ 
         マップ < 整数文字列 > CALC = {{ 1000年" M " }、{ 900" CM " }、{ 500" D " }、{ 400" CD " }、{ 100" C " }、{ 90" XC " }、{ 50"L " }、{ 40" XL " }、{ 10" X " }、{ 9" IX " }、{ 5" V " }、{ 4" IV " }、{ 1" I " }}; 
        マップ < int型文字列 > :: reverse_iteratorのITER = calc.rbegin();
         文字列RET;
         しばらく!(ITER = CALC。得られます()) 
        {
            もし(NUM> = iter-> 最初の)
            { 
                RET + = iter-> 第二; 
                NUM - = iter-> まず、
            } 
            他の
                ITER ++ ; 
        } 
        戻りRET。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/lqerio/p/11750057.html