public String largestNumber(int[] num) {
            String[] nums = new String[num.length];
            for (int i = 0; i < nums.length; i++) {
                nums[i] = Integer.toString(num[i]);
            }
            Arrays.sort(nums, new Comparator<String>() {
                @Override
                public int compare(String s1, String s2) {
                    return -(s1 + s2).compareTo(s2 + s1);
                }
            });
            StringBuilder builder = new StringBuilder();
            boolean skip = true;
            for (String n : nums) {
                if (skip) {
                    int start = skipLendingZeros(n);
                    if (start != n.length()) {
                        skip = false;
                        builder.append(n, start, n.length());
                    }
                } else {
                    builder.append(n);
                }
            }
            String r = builder.toString();
            return r.isEmpty() ? "0" : r;
        }