package com.ss.algorithm.offer;
import java.util.Arrays;
import java.util.Comparator;
/**
* 《剑指offer》 33题
* @author gongxw
* 输入 { 3, 32, 321 }
* 输出 最小数
* 整数会越界,转换成字符串,自己定义字符串的比较,
*/
public class MinNumber33 {
/**
* @param args
*/
public static void main(String[] args) {
int[] numbers = { 3, 32, 321 };
//转成字符串
String[] strNumbers = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
strNumbers[i] = Integer.toString(numbers[i]);
}
//字符串排序 借助库函数
MinNumber33 minNumber33 = new MinNumber33();
StrComparator strComparator = minNumber33.new StrComparator();
Arrays.sort(strNumbers, strComparator);
//打印字符串数组
for (int i = 0; i < strNumbers.length; i++) {
System.out.print(strNumbers[i]);
}
}
//自定义字符串比较
class StrComparator implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
String s1 = o1 + o2;
String s2 = o2 + o1;
return s1.compareTo(s2);
}
}
}
把数组排成最小的数
最新推荐文章于 2021-08-27 15:09:24 发布