|  | 
|  | 1 | +package me.ramswaroop.arrays; | 
|  | 2 | + | 
|  | 3 | +import java.util.Arrays; | 
|  | 4 | +import java.util.Comparator; | 
|  | 5 | + | 
|  | 6 | +/** | 
|  | 7 | + * Created by IntelliJ IDEA. | 
|  | 8 | + * | 
|  | 9 | + * @author: ramswaroop | 
|  | 10 | + * @date: 11/1/15 | 
|  | 11 | + * @time: 8:53 PM | 
|  | 12 | + */ | 
|  | 13 | +public class ArrangeNosToFormBiggestNo { | 
|  | 14 | + | 
|  | 15 | +    /** | 
|  | 16 | +     * Sorts no.s in array {@param a} such that if you form a number {@code n} | 
|  | 17 | +     * by concatenating digits in order a[0]....a[size], it results being the | 
|  | 18 | +     * largest number possible. | 
|  | 19 | +     * <p/> | 
|  | 20 | +     * For example, | 
|  | 21 | +     * I/P: {54, 546, 548, 60} | 
|  | 22 | +     * O/P: {60, 548, 546, 54} i.e, 6054854654 | 
|  | 23 | +     * <p/> | 
|  | 24 | +     * I/P: {1, 34, 3, 98, 9, 76, 45, 4} | 
|  | 25 | +     * O/P: {9, 98, 76, 45, 4, 34, 3, 1} i.e, 998764543431 | 
|  | 26 | +     * | 
|  | 27 | +     * @param a | 
|  | 28 | +     * @return | 
|  | 29 | +     */ | 
|  | 30 | +    public static Integer[] arrangeArrayOfNosToFormBiggestNo(Integer[] a) { | 
|  | 31 | + | 
|  | 32 | +        Arrays.sort(a, new Comparator<Integer>() { | 
|  | 33 | +            @Override | 
|  | 34 | +            public int compare(Integer o1, Integer o2) { | 
|  | 35 | +                return Integer.parseInt(o1 + "" + o2) > Integer.parseInt(o2 + "" + o1) ? -1 : 1; | 
|  | 36 | +            } | 
|  | 37 | +        }); | 
|  | 38 | + | 
|  | 39 | +        return a; | 
|  | 40 | +    } | 
|  | 41 | + | 
|  | 42 | +    public static void main(String a[]) { | 
|  | 43 | +        System.out.println(Arrays.toString(arrangeArrayOfNosToFormBiggestNo(new Integer[]{45, 567, 12, 1}))); | 
|  | 44 | +        System.out.println(Arrays.toString(arrangeArrayOfNosToFormBiggestNo(new Integer[]{54, 546, 548, 60}))); | 
|  | 45 | +        System.out.println(Arrays.toString(arrangeArrayOfNosToFormBiggestNo(new Integer[]{1, 34, 3, 98, 9, 76, 45, 4}))); | 
|  | 46 | +    } | 
|  | 47 | +} | 
0 commit comments