I have the following code in Scala as a solution to the problem:
Find the maximum number possible from the given Seq of Integers while keeping the individual numbers intact
e.g.
Seq(2,5,9,4) should result in 9542
Seq(4, 98, 10, 110, 91) should result in 9891411010
Note that in case of numbers with more than one digit, the entire number should remain together.
Solution in Scala:
import scala.util.Sorting
object MatheMagic {
def getLargestPossibleNumber(numArray: Seq[Int]) = {
numArray.sorted[Int](IntOrdering).mkString.toLong
}
object IntOrdering extends Ordering[Int] {
def compare(x: Int, y: Int) = {
-(x.toString.concat(y.toString).toInt compare y.toString.concat(x.toString).toInt)
}
}
}
Sample invocation:
MatheMagic.getLargestPossibleNumber(Seq(4, 98, 10, 110, 91))