Largest Number
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.
public class Solution {
public String largestNumber(int[] num) {
String[] numStrings = new String[num.length];
for(int i = 0; i < num.length; i++) {
numStrings[i] = String.valueOf(num[i]);
}
Comparator<String> comp = new Comparator<String>() {
public int compare(String s1, String s2) {
return -(s1 + s2).compareTo(s2 + s1);
}
};
Arrays.sort(numStrings, comp);
StringBuilder sb = new StringBuilder();
for(String s : numStrings) {
if(!(s.equals("0") && sb.length() == 0)) {
sb.append(s);
}
}
return sb.length() > 0 ? sb.toString() : "0";
}
}

浙公网安备 33010602011771号