减少时间复杂度为Java中的BigInteger问题

问题描述 投票:-1回答:1

在这个问题上,我们必须元素进行排序,但该元素在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;
}
java sorting biginteger
1个回答
2
投票

我不会把字符串变成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());
© www.soinside.com 2019 - 2024. All rights reserved.