在这个问题上,我们必须元素进行排序,但该元素在BigInteger的格式,以便为我做了一些努力,但一些测试用例没有得到通过,由于超时,请建议我如何降低时间复杂度。
static String[] bigSorting(String[] unsorted) {
BigInteger big[]=new BigInteger[unsorted.length];
String str[]=new String[unsorted.length];
for(int i=0;i<unsorted.length;i++)
{
big[i]=new BigInteger(unsorted[i]);
}
Arrays.sort(big);
for (int i = 0; i < unsorted.length; i++) {
StringBuffer sb = new StringBuffer("");
str[i]=sb.append(big[i]).toString();
}
return str;
}
我不会把字符串变成BigIntegers可言。你这样做,所以你可以在他们的整数值的字符串进行排序。下面假定所有字符串包含正的或0的BigInteger值,即没有底片。否则代码变得有点复杂(WRT的长度)。
我只想字符串数组排序,直接使用自定义的比较:
public class BIComp implements Comparator<String>
{
public int compare(String s1, String s2)
{
if (s1.length() > s2.length())
return 1;
else if (s1.length() < s2.length())
return -1;
else
return s1.compareTo(s2);
}
}
...
Arrays.sort(str, new BIComp());