输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
示例 1:
输入: [10,2]
输出: “102”
class Solution {
public String minNumber(int[] nums) {
String []s=new String[nums.length];
for(int i=0;i<nums.length;i++)
{
s[i]=String.valueOf(nums[i]);
}
quick_sort(s,0,nums.length-1);
StringBuilder sb=new StringBuilder();
for(int i=0;i<nums.length;i++)
{
sb.append(s[i]);
}
return sb.toString();
}
public void quick_sort(String []s,int l,int r)
{
if(l>=r)return;
int i=l-1,j=r+1,x=l;
while(i<j)
{
do i++;while((s[i]+s[x]).compareTo(s[x]+s[i])<0);
do j--;while((s[x]+s[j]).compareTo(s[j]+s[x])<0);
if(i<j)
{
String temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
quick_sort(s,l,j);
quick_sort(s,j+1,r);
}
}