当前位置:网站首页>386. 字典序排数(中等)-迭代-全排列
386. 字典序排数(中等)-迭代-全排列
2022-04-23 17:32:00 【hequnwang10】
一、题目描述
给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。
你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。
示例 1:
输入:n = 13
输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]
示例 2:
输入:n = 2
输出:[1,2]
二、解题
迭代
共有 n 个数需要被处理,假设当前处理到的数为 j,根据字典序规则,在满足条件的前提下,我们优先在 j 的后面添加 0(即 j * 10 < n 满足),否则我们考虑将上一位回退并进行加一操作。
class Solution {
public List<Integer> lexicalOrder(int n) {
//迭代
List<Integer> res = new ArrayList<>();
int number = 1;
for(int i = 0;i<n;i++){
res.add(number);
//首先尝试在number后面加0
if(number * 10 <= n){
number *= 10;
}else{
//如果加0后大于n了,则每次只加1.当然也需要判断是否进位 比如19,29,39。。。达到进位要求然后回退上一位。
while( number % 10 == 9 || number+1>n){
number /= 10;
}
number++;
}
}
return res;
}
}
时间复杂度:O(n);
空间复杂度:O(1)。
版权声明
本文为[hequnwang10]所创,转载请带上原文链接,感谢
https://blog.csdn.net/hequnwang10/article/details/124355525
边栏推荐
- Promise (I)
- How to change input into text
- Baidu Map Case - Zoom component, map scale component
- Advantages and disadvantages of several note taking software
- ASP. NET CORE3. 1. Solution to login failure after identity registers users
- Tdan over half
- Use of Shell sort command
- . net type transfer
- How to manually implement the mechanism of triggering garbage collection in node
- 【WPF绑定3】 ListView基础绑定和数据模板绑定
猜你喜欢
HCIP第五次实验
ASP. Net core dependency injection service life cycle
Net standard
XTask与Kotlin Coroutine的使用对比
flink 学习(十二)Allowed Lateness和 Side Output
ASP. NET CORE3. 1. Solution to login failure after identity registers users
[difference between Oracle and MySQL]
01-初识sketch-sketch优势
Understanding of RPC core concepts
Learning record of uni app dark horse yougou project (Part 2)
随机推荐
[simple understanding of database]
Clickhouse SQL operation
ASP. NET CORE3. 1. Solution to login failure after identity registers users
01-初识sketch-sketch优势
El cascade and El select click elsewhere to make the drop-down box disappear
PC uses wireless network card to connect to mobile phone hotspot. Why can't you surf the Internet
索引:手把手教你索引从零基础到精通使用
[logical fallacy in life] Scarecrow fallacy and inability to refute are not proof
[markdown notes]
[related to zhengheyuan cutting tools]
How to change input into text
Promise (I)
线性代数感悟之1
[C#] 彻底搞明白深拷贝
ECMAScript history
Manually implement call, apply and bind functions
Basic case of Baidu map
.Net Core3. 1 use razorengine NETCORE production entity generator (MVC web version)
Shell script -- shell programming specification and variables
ASP. Net core dependency injection service life cycle