您的位置:首页 > 其它

用几个数字任意组合成最大数

2017-08-25 11:21 232 查看
例如12,34,56,56,672

组合成最大数为67256563412

原题:

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.

class Solution {
public String largestNumber(int[] nums) {
String[] input = new String[nums.length];
for(int i = 0;i<nums.length;i++){
input[i] = String.valueOf(nums[i]);
}
Arrays.sort(input, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {//覆写元素的比较规则
for(int i = 0; i < o1.length() + o2.length(); i++) {
char p1 = o1.charAt(i % o1.length());
char p2 = o2.charAt(i % o2.length());
if(p1 != p2) return p2 - p1;
}
return 0;
}
});
String result = "";
for(String s : input) {
result += s;
}
int a = 0;
for(int i = 0;i<result.length();i++){

if(result.charAt(i) == '0'){
a = i+1;
}
if(result.charAt(i) != '0'){
return result.substring(a,result.length());
}
}
return "0";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐