33 把数组排成最小数

来源:互联网 发布:手机远程控制电脑 知乎 编辑:程序博客网 时间:2024/06/01 10:42

描述:


实现代码:

import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;public class Solution {public static void main(String[] args) {int arr[]={3,32,321};int arr1[]={3,32,321};System.out.println("方法一");String res=PrintMinNumber(arr);System.out.println(res);// 方法二  String res2=PrintMinNumber2(arr1);System.out.println("方法二");System.out.println(res);}public static String PrintMinNumber2(int [] numbers) {        int n;        String s="";        ArrayList<Integer> list=new ArrayList<Integer>();        n=numbers.length;                 for(int i=0;i<n;i++){            list.add(numbers[i]);//将数组放入arrayList中        }        //实现了Comparator接口的compare方法,将集合元素按照compare方法的规则进行排序        Collections.sort(list,new Comparator<Integer>(){                     @Override            public int compare(Integer str1, Integer str2) {                // TODO Auto-generated method stub                             String s1=str1+""+str2;                    String s2=str2+""+str1;                                         return s1.compareTo(s2);                }            });                 for(int j:list){            s+=j;        }        return s;    }public static String PrintMinNumber(int [] numbers) {String res="";ArrayList<String> minNumber=new ArrayList<String>();for (int i : numbers) {minNumber.add(String.valueOf(i));}Collections.sort(minNumber, new Comparator<String>() {@Overridepublic int compare(String a, String b) {int len1 = a.length();int len2 = b.length();int lim = Math.min(len1, len2);char v1[] = a.toCharArray();char v2[] = b.toCharArray();int k = 0;while (k < lim) {char c1 = v1[k];char c2 = v2[k];if (c1 != c2) {return c1 - c2;}k++;}if (len1>lim) {returncompare(a.substring(lim), b);}else if (len2>lim) {returncompare(a,b.substring(lim));}else {return len1 - len2;}}});//System.out.println(minNumber);StringBuilder sb=new StringBuilder();for (String i : minNumber) {sb.append(i);}return sb.toString();}}

 测试结果:


0 0
原创粉丝点击