算法问题:给定一个非负整数列表,对其进行排列,以使其形成最大数。
例如,给定[3,30,34,5,9],最大的形成数是9534330。
注意:结果可能非常大,因此您需要返回字符串而不是整数。
public class Solution {
public String largestNumber(int[] num) {
Arrays.sort(num, new java.util.Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
String s1 = String.valueOf(a), s2 = String.valueOf(b);
return Integer.parseInt(s1 + s2) - Integer.parseInt(s2 + s1);
}
});
StringBuilder builder = new StringBuilder();
for (int i = num.length - 1; i >= 0; i--) builder.append(num[i]);
return builder.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
结果:第3行:错误:未找到用于sort(int [],<anonymous Comparator <Integer >>)的合适方法
有人知道如何修改吗?谢谢!
感谢您提供所有详细的答案,我将代码修改为
public String largestNumber(int[] num) {
int N = num.length;
String[] aux …Run Code Online (Sandbox Code Playgroud)