剑指 Offer 17. 打印从1到最大的n位数 - leetcode 剑指offer系列
发布日期:2021-06-29 07:11:54
浏览次数:3
分类:技术文章
本文共 1155 字,大约阅读时间需要 3 分钟。
题目难度: 简单
今天继续更新剑指 offer 系列, 这道题可能是整个系列难度最低的一道了, 非常适合入门同学. 这里同样提供多种方法帮助拓展思路
老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ 另外在公众号里回复 offer 就能看到剑指 offer 系列当前连载的所有文章了
题目描述
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
- 用返回一个整数列表来代替打印
- n 为正整数
题目样例
示例
输入
1
输出
[1,2,3,4,5,6,7,8,9]
题目思考
- 如何得到最大值?
解决方案
思路
分析
- 题目很直白, 我们只需要得到 n 位数的上限, 将其作为循环终点, 从 1 开始循环依次保存到数组即可
实现
- 方案 1: 取上限的下一个数, 显然是
pow(10, n)
, 循环上界小于它即可 - 方案 2: 直接取上限, n 位数的上限就是 n 个 9, 通过字符串转换可以直接得到
- 方案 3: 还是直接取上限, 通过将当前数字乘以 10 然后加 9 的方式循环生成上限
复杂度
- 时间复杂度
O(10^N)
- 需要循环到
10^N
依次输出
- 需要循环到
- 空间复杂度
O(1)
- 只使用了几个变量
代码
方案 1 - 取上限的下一个数
class Solution: def printNumbers(self, n: int) -> List[int]: return list(range(1, 10**n))
方案 2 - 利用字符串转换取上限数
class Solution: def printNumbers(self, n: int) -> List[int]: mx = int("9" * n) res = [] for i in range(1, mx + 1): res.append(i) return res
方案 3 - 利用循环求上限数
class Solution: def printNumbers(self, n: int) -> List[int]: mx = 0 for i in range(n): mx = mx * 10 + 9 res = [] for i in range(1, mx + 1): res.append(i) return res
大家可以在下面这些地方找到我~😊
我的公众号: 每日精选算法题, 欢迎大家扫码关注~😊
转载地址:https://blog.csdn.net/zjulyx1993/article/details/107048080 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月30日 14时14分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
阿里云RPA(机器人流程自动化)干货系列之六:客户端安装及激活 ...
2019-04-29
[设计] 地铁站点主题色的配色
2019-04-29
Android——实现m3u8视频缓存
2019-04-29
Android——各种动画Drawable
2019-04-29
Android——仿美团商品详情页折叠效果
2019-04-29
Android——ListView中getChildAt(index)的使用注意事项
2019-04-29
Gradle for Android(一)——初识Gradle
2019-04-29
Gradle for Android(六)——测试
2019-04-29
Gradle for Android(三)——依赖管理(一)
2019-04-29
微机接口实验三:交通灯控制实验(C口置位/复位控制字的使用)
2019-04-29
微机接口实验四:可编程定时器/计数器8254
2019-04-29
浮点加减运算中关于结果规格化的思考
2019-04-29
DL入门(4):长短期记忆网络(LSTM)
2019-04-29
C++:快速排序
2019-04-29
剑指Offer题40:最小的k个数:快速排序,优先队列
2019-04-29
C++:冒泡排序
2019-04-29
用正则表达式判断邮箱命名是否合法
2019-04-29
lili‘s sqli-labs less01(简直是在为难我小猪崽)
2019-04-29
lili‘s sqli-labs less02(小猪崽有新发现)
2019-04-29
lili‘s sqli-labs LESS-3&LESS-4
2019-04-29