Largest Number

来源:互联网 发布:中国联通无线上网 mac 编辑:程序博客网 时间:2024/06/07 01:47

参考:点击打开链接

1.此题的技巧,我们可以用String的拼接和compareTo来帮我们做比较,比如9和45;

2. Comparator接口的compare是按小到大来排,缺省时,若想从大到小,可以将两个变量值逆着来比较

public class Solution {    public String largestNumber(int[] nums) {        if (nums == null || nums.length == 0) {            return "";        }        Integer [] strs = new Integer[nums.length];        for (int i = 0; i < nums.length; i++) {            strs[i] = nums[i];        }        Arrays.sort(strs, new Comparator<Integer>() {            public int compare(Integer str1, Integer str2) {                String s1 = String.valueOf(str1) + String.valueOf(str2);                String s2 = String.valueOf(str2) + String.valueOf(str1);                //return s1.compareTo(s2);                return s2.compareTo(s1);            }        });        if (strs[0] == 0)             return "0";        StringBuilder sb = new StringBuilder();        for (Integer str: strs) {            sb.append( String.valueOf(str));        }        return sb.toString();    }}


0 0
原创粉丝点击