博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode: Integer to Roman 解题报告
阅读量:6177 次
发布时间:2019-06-21

本文共 1775 字,大约阅读时间需要 5 分钟。

Integer to Roman

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

SOLUTION 1:

从大到小的贪心写法。从大到小匹配,尽量多地匹配当前的字符。

罗马数字对照表:

1 package Algorithms.string; 2  3 public class IntToRoman { 4     public String intToRoman(int num) { 5         int nums[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; 6         String[] romans = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; 7      8         StringBuilder sb = new StringBuilder(); 9         10         int i = 0;11         // 使用贪心法。尽量拆分数字12         while (i < nums.length) {13             if (num >= nums[i]) {14                 sb.append(romans[i]);15                 num -= nums[i];16             } else {17                 i++;18             }19         }20         21         return sb.toString();22     }23 }
View Code

 2015.1.12 redo:

1 public String intToRoman(int num) { 2         int[] nums = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; 3          4         /* 5             1000, 900, 500, 400, 100,  90,   50,   40,  10, 9, 5, 4, 1 6             "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X" IX V, IV, I 7         */ 8         String[] strs = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; 9         10         int i = 0;11         StringBuilder sb = new StringBuilder();12         // greedy.13         while (i < nums.length) {14             // bug 1: should use ">="15             if (num >= nums[i]) {16                 sb.append(strs[i]);17                 // bug 2: should remember to reduce the nums[i].18                 num -= nums[i];19             } else {20                 i++;21             }22         }23         24         return sb.toString();25     }
View Code

 

请至主页君GITHUB:

 

转载地址:http://auzda.baihongyu.com/

你可能感兴趣的文章
JAVA CAS原理深度分析
查看>>
权限模型
查看>>
如何配置 Log4J 只保留最近七天的日志文件
查看>>
Python 类与元类的深度挖掘 II
查看>>
prometheus收集springboot指标
查看>>
global gtags的配置
查看>>
iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
查看>>
Creating a Windows Image on OpenStack
查看>>
jquery图片自动缩放
查看>>
ie6 失真问题
查看>>
Regular Expression
查看>>
你到了第几层?图片式标题、按钮与隐藏文本
查看>>
大话重构连载14:我们是这样自动化测试的
查看>>
我的友情链接
查看>>
iis6 php安装 (一)
查看>>
关于,在Mysql中,外键是否会影响性能的问题???
查看>>
利用javascript设置图片等比例缩小
查看>>
dedeCMS如何给频道页添加缩略图
查看>>
CoreSeek快速安装
查看>>
Linux 网络性能调试工具Netstat
查看>>