输入一个正整数数组,将他们连接起来排成一个数,输出会排出的所有数字中最小的一个

输入一个正整数数组,将他们连接起来排成一个数,输出能排出的所有数字中最小的一个

对于两个字符串重新定义其大小规则,比如:给定两个字符串s1,s2,如果s1+s2》s2+s1 那么s1>s2,反之s2>s1

按照这个思路,给出算法如下:

public int finMinCom(int []a)
	{
		int result;
		List<String>strs=new ArrayList<String>();
		for(int i:a)
		{
			strs.add(String.valueOf(i));
		}
		Collections.sort(strs,new Comparator<String>()
		{

			@Override
			public int compare(String o1, String o2)
			{
				// TODO Auto-generated method stub
				String s1=o1+o2;
				String s2=o2+o1;
				
				return s1.compareTo(s2);
			}
		});
		
		StringBuilder sb=new StringBuilder();
		for(String str:strs)
		{
			sb.append(str);
		}
		result=Integer.parseInt(sb.toString());
		return result;
	}