Skip to content

Instantly share code, notes, and snippets.

@ssinganamalla
Last active October 10, 2015 23:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ssinganamalla/b672b4557ffd89789e73 to your computer and use it in GitHub Desktop.
Save ssinganamalla/b672b4557ffd89789e73 to your computer and use it in GitHub Desktop.
LargestNumber
/*
Given a list of non negative integers, arrange them such that they form the largest number.
For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.
Note: The result may be very large, so you need to return a string instead of an integer.
*/
public class MaxNumber {
String getLargestNumber(List<Integer> numbers) {
if (numbers == null || numbers.isEmpty()) return "";
List<String> strings = numbers.stream().map(e -> e.toString())
.sorted((o11, o21) -> (o21 + o11).compareTo(o11 + o21))
.collect(Collectors.toList());
return String.join("", strings);
}
public static void main(String[] args) {
MaxNumber maxNumber = new MaxNumber();
List<Integer> integers = Arrays.asList(1, 32, 98, 9, 12);
System.out.println(maxNumber.getLargestNumber(integers));
integers = Arrays.asList(50, 2, 1, 9);
System.out.println(maxNumber.getLargestNumber(integers));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment