【LeetCode13】【Roman to Integer】
来源:互联网 发布:淘宝网司法房产拍卖 编辑:程序博客网 时间:2024/05/03 08:53
题目:
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
解题方法1:
//第一版本:不知道charAt方法,利用HashMap求解 用时111ms public static int romanToInt1(String s) { Map<String,Integer> map = new HashMap<String,Integer>(); map.put("I", 1); map.put("X",10); map.put("C",100); map.put("M",1000); map.put("V",5); map.put("L",50); map.put("D",500); int integer = 0; int last = 1; int i = s.length()-1; while(i>=0){ String subString = s.substring(i, i+1); int split = map.get(subString); if(last>split){integer-=split;} else{integer+=split;} last = split; i--; } return integer; }
解题方法2:
//第一版本:利用charAt求解 用时106mspublic static int romanToInt2(String s) { int[] num = new int[s.length()]; int last = 0; int ver = 0; for(int i=s.length()-1;i>=0;i--){ //注意:"I"是字符串,'I'是char类型,两者是不能通用匹配的 switch(s.charAt(i)){ case 'I': num[i] = 1; break; case 'V': num[i] = 5; break; case 'X': num[i] = 10; break; case 'L': num[i] = 50; break; case 'C': num[i] = 100; break; case 'D': num[i] = 500; break; case 'M': num[i] = 1000; break; } if(num[i]<last){ver-=num[i];last = num[i];} else {ver+=num[i];last = num[i];} } return ver; }
总结:
这两种方法,看见貌似用时相差(5ms)不多,但排名却从beats 36.88%跳至52.44%,可见代码优化对算法的重要性。当然,目前的代码还有待优化,希望大家能一起讨论,进步。
0 0
- Leetcode13: Roman to Integer
- [LeetCode13]Roman to Integer
- leetcode13 Roman to Integer
- leetcode13 Roman to Integer
- LeetCode13:Roman to Integer
- Leetcode13. Roman to Integer
- leetcode13 Roman to Integer
- LeetCode13 Roman to Integer
- leetcode13: Roman to Integer
- LeetCode13 Roman to Integer
- leetcode13. Roman to Integer
- LeetCode13. Roman to Integer
- 【LeetCode13】【Roman to Integer】
- LeetCode13. Roman to Integer
- leetcode13 :roman to integer
- leetcode13. Roman to Integer
- leetCode13:Roman to Integer
- LeetCode13——Roman to Integer
- JAVA如何取得HTTP请求头
- 树的子结构
- Array dimensions must match for binary array op.
- 使用SSM创建项目后,无法访问静态资源,报404错误解决办法
- 《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka 的使用
- 【LeetCode13】【Roman to Integer】
- 聊聊这个与代码优化有关的选择题 (某公司实习生招聘笔试试题)
- Android调用相机拍照并添加水印
- 综合整理日志打印工具
- 菜单之抽屉菜单(NavigationDrawer)
- merge_sort
- 蓝桥杯--第七届决赛:打靶
- MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL
- JIRA中的数据存储-----active object