#将整数进行字典排序#
386. 字典序排数
给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。
你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。
示例 1:
输入:n = 13 输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]
我主要四练习COmparator的用法,如果用会Comparator,那么此类其他字符类的排序也是可以的,时间空间复杂度没考虑;
代码
class Solution { public List<Integer> lexicalOrder(int n) { List<Integer> list = new ArrayList<>(); TreeSet<String> set=new TreeSet<>(new Comparator<String>() { @Override public int compare(String a, String b) { int size=Math.min(a.length(),b.length()); for(int i=0;i<size;i++){ if(a.charAt(i)!=b.charAt(i)){ return a.charAt(i)-b.charAt(i); } } return a.length()-b.length(); } }); for(int i=1;i<=n;i++){ set.add(String.valueOf(i)); } for(int i=1;i<=n;i++){ list.add(Integer.parseInt(set.pollFirst())); } return list; } }#计算机网络知识点总结#