当前位置:网站首页>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
边栏推荐
- Baidu Map 3D rotation and tilt angle adjustment
- 给 el-dialog 增加拖拽功能
- Devexpress GridView add select all columns
- Use of shell cut command
- 1-2 JSX syntax rules
- Using quartz under. Net core -- job attributes and exceptions of [4] jobs and triggers
- Change Oracle to MySQL
- 開期貨,開戶雲安全還是相信期貨公司的軟件?
- [二叉数] 二叉树的最大深度+N叉树的最大深度
- Detailed explanation of C webpai route
猜你喜欢
练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)
PC uses wireless network card to connect to mobile phone hotspot. Why can't you surf the Internet
stm32入门开发板选野火还是正点原子呢?
线性代数感悟之2
In embedded system, must the program code in flash be moved to ram to run?
flink 学习(十二)Allowed Lateness和 Side Output
RPC核心概念理解
2. Electron's HelloWorld
Solution architect's small bag - 5 types of architecture diagrams
Using quartz under. Net core - [1] quick start
随机推荐
快时钟同步慢时钟域下的异步控制信号slow clk to fast clk
Generating access keys using JSON webtoken
Shell-sed命令的使用
Shell script -- shell programming specification and variables
线性代数感悟之2
开期货,开户云安全还是相信期货公司的软件?
1-5 nodejs commonjs specification
Shell-sort命令的使用
Understanding of RPC core concepts
双指针进阶--leetcode题目--盛最多水的容器
Come out after a thousand calls
Router object, route object, declarative navigation, programmed navigation
线性代数感悟之1
[PROJECT] small hat takeout (8)
Allowed latency and side output
Change Oracle to MySQL
C dapper basically uses addition, deletion, modification and query transactions, etc
1-4 configuration executable script of nodejs installation
JS to find the character that appears three times in the string
ClickHouse-表引擎