11package com .rampatra .arrays ;
22
33import java .util .Arrays ;
4- import java .util .Comparator ;
54
65/**
76 * Created by IntelliJ IDEA.
87 *
98 * @author rampatra
109 * @since 11/1/15
11- * @time: 8:53 PM
1210 */
1311public class ArrangeNosToFormBiggestNo {
1412
1513 /**
16- * Sorts no.s in array {@param a } such that if you form a number {@code n}
14+ * Sorts {@code numbers } such that if you form a number {@code n}
1715 * by concatenating digits in order a[0]....a[size], it results being the
1816 * largest number possible.
1917 * <p/>
@@ -24,24 +22,19 @@ public class ArrangeNosToFormBiggestNo {
2422 * I/P: {1, 34, 3, 98, 9, 76, 45, 4}
2523 * O/P: {9, 98, 76, 45, 4, 34, 3, 1} i.e, 998764543431
2624 *
27- * @param a
28- * @return
25+ * @param numbers input integer array
26+ * @return integer array where if you concatenate all its elements, you will get the largest number
2927 */
30- public static Integer [] arrangeArrayOfNosToFormBiggestNo (Integer [] a ) {
28+ private static Integer [] arrangeArrayOfNosToFormBiggestNo (Integer [] numbers ) {
3129
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- });
30+ Arrays .sort (numbers , (o1 , o2 ) -> Integer .parseInt (o1 + "" + o2 ) >= Integer .parseInt (o2 + "" + o1 ) ? -1 : 1 );
3831
39- return a ;
32+ return numbers ;
4033 }
4134
4235 public static void main (String [] args ) {
4336 System .out .println (Arrays .toString (arrangeArrayOfNosToFormBiggestNo (new Integer []{45 , 567 , 12 , 1 })));
4437 System .out .println (Arrays .toString (arrangeArrayOfNosToFormBiggestNo (new Integer []{54 , 546 , 548 , 60 })));
4538 System .out .println (Arrays .toString (arrangeArrayOfNosToFormBiggestNo (new Integer []{1 , 34 , 3 , 98 , 9 , 76 , 45 , 4 })));
4639 }
47- }
40+ }
0 commit comments