LeetCode 179 Largest Number
2015-12-04 17:53
405 查看
题目描述
Given a list of non negative integers, arrange them such that they form the largest number.For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.
Note: The result may be very large, so you need to return a string instead of an integer.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
分析
[code][3, 30, 34, 5, 9] 排序成…… [9, 5, 34, 3, 30]
如何判断大小?对于每个元素,左边第一位大的在前面,如5>30。因为5的第一位是5是5,30的第一位是3。依次比较。
那么3应该比30大,因为3 + 30 = 330 ,而30 + 3 = 303。
所以本题可分为4步:
定义string数组,将int数组,转成string数组
对string数组按照定义的规则排序
如果strs第一个元素是“0”,则结果是0
连接strs数组成字符串,即为结果
代码
[code] public static String largestNumber(int[] nums) { String[] strs = new String[nums.length]; // 将int数组,转成string数组 for (int i = 0; i < strs.length; i++) { strs[i] = nums[i] + ""; } // 对strs排序 Arrays.sort(strs, new Comparator<String>() { public int compare(String x, String y) { return (y + x).compareTo(x + y); } }); // 如果strs第一个元素是“0”,则结果是0 if ("0".equals(strs[0])) { return "0"; } // 连接strs数组成字符串 return String.join("", strs); }
相关文章推荐
- 云的成因和成分
- Linux 安装redis 详解
- 全能型开源远程终端:MobaXterm
- MyEclipse安装插件的三种方法和使用心得
- 深入理解C--Four 内存四区全局区剖析
- DOPE OPENCART 自适应主题模板 ABC-0701
- acm2056 神烦 超限 超限
- SharePoint Server 2016 update
- STM32时钟 分析
- next()和nextLine()方法的区别
- Wamserver 添加虚拟主机的方式
- C++终极复习篇(五)----STL标准模板库
- 黑马程序员——OC学习——@class的使用
- 关于幻读
- 从数据库中获取数据第二个文件结果集
- 7)查找[1]顺序表的查找
- Python中@的用法(Decorator:装饰器)
- 一维byte数组旋转
- Oracle Report : REP-1219
- 从数据库获取数据就以下这两个脚本足够