您的位置:首页 > 其它

Largest Number

2015-08-14 17:09 260 查看
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.)

可以转换为一个字符串数组来处理,难点是字符串的排序,需要自己定义排序方法,

可以重写java中sort的比较方法。

public String largestNumber(int[] nums) {
StringBuffer sb=new StringBuffer();
String[] s=new String[nums.length];
for(int i=0;i<nums.length;i++)
s[i]=String.valueOf(nums[i]);
Arrays.sort(s, new Comparator<String>() {
public int compare(String s1,String s2){
String leftRight=s1+s2;
String rightLeft=s2+s1;
return leftRight.compareTo(rightLeft);
}
});
for(String s1:s)
sb.insert(0,s1);
while(sb.charAt(0)=='0'&&sb.length()>1)
sb.deleteCharAt(0);
return sb.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: