| 12345678910111213141516171819202122232425262728293031323334 | func lexicalOrder(n int) []int {	res := make([]int, n)	if n == 0 {		return res	}	res[0] = 1	for i := 1; i < n; i++ {		if pre := res[i-1]; pre*10 <= n {			res[i] = pre * 10		} else if pre != n && pre%10 != 9 {			res[i] = pre + 1		} else {			for res[i] = pre / 10; res[i]%10 == 9; res[i] /= 10 {			}			res[i]++		}	}	return res}type ints []intfunc (is ints) Len() int           { return len(is) }func (is ints) Less(i, j int) bool { return strconv.Itoa(is[i]) < strconv.Itoa(is[j]) }func (is ints) Swap(i, j int)      { is[i], is[j] = is[j], is[i] }func lexicalOrderSort(n int) []int {	res := make([]int, n)	for i := 0; i < n; i++ {		res[i] = i + 1	}	sort.Sort(ints(res))	return res}
 |