Leetcode 386. 字典序排数
题目
给定一个整数 n, 返回从 1 到 n 的字典顺序。
测试样例
给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。
请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。
题解
dfs深搜
除了第一位可以用1~9,其余位均为0 ~ 9。详细过程见代码
代码
vector<int> ans;
void dfs(int now,int n){
ans.push_back(now);
for(int i=0; i<=9; i++){
if(now*10+i <= n){
dfs(now*10+i,n);
}else break;
}
}
vector<int> lexicalOrder(int n) {
for(int i=1; i<=9; i++)
if(i<=n) dfs(i,n);
return ans;
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/lexicographical-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。