@Leetcode179
给定一组非负整数 nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之组成一个最大的整数。
示例 :
输入:nums = [10,2]
输出:“210”
思路1:
两个字符串10和2,分别相加以后就是102和210,String的compareTo(s1,s2)方法会逐个字符比较,如果s1>s2,返回1,小于则返回-1。
class Solution {
public String largestNumber(int[] nums) {
for(int i=0;i<nums.length-1;i++){
for(int j=i+1;j<nums.length;j++){
int a=helper(nums[i],nums[j]);
if(a<0){
int tem=nums[i];
nums[i]=nums[j];
nums[j]=tem;
}
}
}
StringBuffer sb=new StringBuffer();
for(int x:nums){
sb.append(String.valueOf(x));
}
if(sb.charAt(0)=='0') return "0";
return String.valueOf(sb);
}
public int helper(int a,int b){
String s1=String.valueOf(a)+String.valueOf(b);
String s2=String.valueOf(b)+String.valueOf(a);
return s1.compareTo(s2);
}
}