LintCode:M-最大数
来源:互联网 发布:日本综艺节目软件app 编辑:程序博客网 时间:2024/05/22 00:53
LintCode链接
给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。
注意事项
最后的结果可能很大,所以我们返回一个字符串来代替这个整数。
样例
给出 [1, 20, 23, 4, 8]
,返回组合最大的整数应为8423201
。
public class Solution { /* * @param nums: A list of non negative integers * @return: A string */ public String largestNumber(int[] nums) { Comparator<Integer> cmpr = new Comparator<Integer>(){ public int compare(Integer a, Integer b){ String sa = a+""; String sb = b+""; if(sa.length()==sb.length()){ if(a==b) return 0; return a>b?1:-1; } //保证a长度比b小 if(sa.length()>sb.length()) return -1*compare(b, a); //取公共的部分比较 int ta = a; int tb = Integer.valueOf(sb.substring(0, sa.length())); if(ta==tb){ tb = Integer.valueOf(sb.substring(sa.length(), sb.length())); //tb剩余部分再与ta比较 return compare(ta, tb); }else{ return ta>tb?1:-1; } } }; Integer[] numss = new Integer[nums.length]; for(int i=0; i<nums.length; i++) { numss[i] = nums[i]; } Arrays.sort(numss, cmpr);//sort比较器类型必须和数组的一致,否则报错 //0的特殊处理 if(numss[numss.length-1]==0) return "0"; StringBuffer res = new StringBuffer(""); for(int i=numss.length-1; i>=0; i--){ res.append(numss[i]); } return res.toString(); }}
阅读全文
0 0
- LintCode:M-最大数
- LintCode:M-最大正方形
- LintCode-最大数
- lintcode-最大数-184
- LintCode-最大数
- LintCode:最大数
- LintCode 最大数
- LintCode-最大数
- LintCode 创建最大数
- 最大数,lintcode
- LintCode 184-最大数
- LintCode :最大数
- lintcode(184)最大数
- LintCode:创建最大数
- lintcode -- 最大数
- 最大数-LintCode
- 创建最大数-LintCode
- LintCode(M)两数之和
- 产品新人如何入门:需求分析
- VPS主机与VM主机有什么区别
- static,final,static-final
- 对称密码 之 分组密码的多重加密
- 把这辆车分享到微信怎么样
- LintCode:M-最大数
- Quartz 定时器动态创建任务和修改执行时间修改后出现立即执行情况
- linux下cpu参数的参看和说明
- 研究Win32 GUI中SetActiveWindow与SetFocus和窗口消息
- mongodb的增删改查操作指南
- linux下定时执行php脚本
- 实践项目六:PDF全英论文解析和翻译
- Android中图片压缩方式总结
- 备忘:Hibernate5中调用存储过程