题解 | #把数组排成最小的数#
把数组排成最小的数
http://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993
使用优先级队列解决此问题。
import java.util.*;
public class Solution {
public String PrintMinNumber(int [] numbers) {
// 自定义排序规则
PriorityQueue<Integer> queue = new PriorityQueue<Integer>((a,b)->{return (Integer.valueOf(a + "" + b))-(Integer.valueOf(b + "" + a));});
for(int i : numbers){
queue.add(i);
}
String res = "";
int size = queue.size();
for(int i = 0; i < size; i++){
res += String.valueOf(queue.poll());
}
return res;
}
}
查看4道真题和解析