leetcode-largest-number 发表于 2017-02-10 | 分类于 算法 , leetcode | 题目大意 https://leetcode.com/problems/largest-number/ 非负数组,把数组中所有数看成字符串组合拼接在一起最大,求最大的数的字符串形式 题目分析 本质上是字符串之间的一种“排序”,注意数组全是0的特殊情况。 代码12345678910111213141516171819202122232425262728293031public class Solution { public String largestNumber(int[] nums) { if (nums.length == 0) { return ""; } List<String> list = new ArrayList<String>(); boolean not0 = false; //用这个变量判断一下是否数组中全部是0 for (int i : nums) { if (i != 0) { not0 = true; } list.add(String.valueOf(i)); } if (!not0) { return "0"; } Collections.sort(list, new Comparator<String>() { public int compare(String s1, String s2) { String ss1 = s1 + s2; String ss2 = s2 + s1; return ss2.compareTo(ss1); } }); StringBuilder ans = new StringBuilder(); for (String i : list) { ans.append(i); } return ans.toString(); }}