1
1
package com .rampatra .arrays ;
2
2
3
3
import java .util .Arrays ;
4
- import java .util .Comparator ;
5
4
6
5
/**
7
6
* Created by IntelliJ IDEA.
8
7
*
9
8
* @author rampatra
10
9
* @since 11/1/15
11
- * @time: 8:53 PM
12
10
*/
13
11
public class ArrangeNosToFormBiggestNo {
14
12
15
13
/**
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}
17
15
* by concatenating digits in order a[0]....a[size], it results being the
18
16
* largest number possible.
19
17
* <p/>
@@ -24,24 +22,19 @@ public class ArrangeNosToFormBiggestNo {
24
22
* I/P: {1, 34, 3, 98, 9, 76, 45, 4}
25
23
* O/P: {9, 98, 76, 45, 4, 34, 3, 1} i.e, 998764543431
26
24
*
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
29
27
*/
30
- public static Integer [] arrangeArrayOfNosToFormBiggestNo (Integer [] a ) {
28
+ private static Integer [] arrangeArrayOfNosToFormBiggestNo (Integer [] numbers ) {
31
29
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 );
38
31
39
- return a ;
32
+ return numbers ;
40
33
}
41
34
42
35
public static void main (String [] args ) {
43
36
System .out .println (Arrays .toString (arrangeArrayOfNosToFormBiggestNo (new Integer []{45 , 567 , 12 , 1 })));
44
37
System .out .println (Arrays .toString (arrangeArrayOfNosToFormBiggestNo (new Integer []{54 , 546 , 548 , 60 })));
45
38
System .out .println (Arrays .toString (arrangeArrayOfNosToFormBiggestNo (new Integer []{1 , 34 , 3 , 98 , 9 , 76 , 45 , 4 })));
46
39
}
47
- }
40
+ }
0 commit comments