leetcode-386 字典序排数
给定一个整数 n, 返回从 1 到 n 的字典顺序。
例如,
给定 n =13,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。
请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。
根据题目描述,所谓字典顺序,即数值按照类似字符串首字母的ASCII大小进行排序
那么数值的字典序即为一个十叉树,比如以1为树顶的树状形式如下:
1
|
10 11 … 19
|\ \
100 101 102…109
可以看到第一层第一个数 1 和第二层之间的计算方式:
1 *10 + (1…9)
第二层 第一个树 100 和第三层之间的计算方式
10*10 + (1…9)
综上我们可以实现 n 以内的字典排序数如下:
vector<int> lexicalOrder(int n) {vector<int> res;int cur = 1;for (int i = 1;i <= n; i++) {res.push_back(cur);/*深度优先,查找第一颗子树的节点,大小在n以内*/if(cur * 10 <= n) { cur *= 10;}else {if(cur >= n){cur /= 10;}cur += 1;/*处理子树切换时的场景:例如19 --> 2 1999 --> 2 */while(cur % 10 == 0) {cur /= 10;}}}return res;
}
leetcode-386 字典序排数相关推荐
- LeetCode 386. 字典序排数(DFS循环)
1. 题目 给定一个整数 n, 返回从 1 到 n 的字典顺序. 例如, 给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] . 请尽可能的优化算法的时间复杂度和 ...
- LeetCode Algorithm 386. 字典序排数
386. 字典序排数 Ideas 字典序排序嘛,先生成一个数字数组,然后转成字符串类型,再排一下序,之后再转回整数数组,return就可以了. Code Python from typing impo ...
- leetcode 386. Lexicographical Numbers | 386. 字典序排数(Java)
题目 https://leetcode.com/problems/lexicographical-numbers/ 题解 思路:先序遍历 10 叉树,参考:Simple Java DFS Soluti ...
- Leetcode每日一题386. 字典序排数
- LeetCode 字典序排数(最优解法,不接受反驳)
给定一个整数 n, 返回从 1 到 n 的字典顺序. 例如, 给定 n = 13,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] . 请尽可能的优化算法的时间复杂度和空间复杂度. ...
- LeetCode实战:两数相加
题目英文 You are given two non-empty linked lists representing two non-negative integers. The digits are ...
- LeetCode(1.俩数之和)JAVA
LeetCode(1.俩数之和) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是 ...
- 排列组合十一个性质公式及证明,错排数公式及证明
文章目录 排列数 组合数 求组合数常用公式 定义式 递推式 杨辉三角 组合数常用性质及证明 性质一 性质二 性质三 性质四(二项式定理) 性质五 性质六 性质七 性质八 性质九 性质十 性质十一 错排 ...
- [SDOI2016]排列计数 (错排数概念 + 递推公式【附带证明】)
辛勤二更 题目 题解 错排数概念 错排数递推公式及其证明 代码实现 这种题做的时候: 做完后:正常这就是生活,我们要学会习惯 题目 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n ...
最新文章
- 国内首部高尔夫商战小说《手腕》(林健锋著)
- python四大软件-传智播客解析Python之移动端页面适配四大方式
- java catch 空指针异常_关于Java:捕获空指针异常
- java复选框没被选择,在CodenameOne中,为什么没有选中复选框但显示为选中状态?...
- Android recyclerView/listview的点击变色、点击换背景颜色
- Java线程中关于Synchronized的用法
- Zabbix-3.0.0 安装Graphtree
- 工作144:时间戳格式化
- 光轴会聚模型求解世界坐标点流程与公式理解
- 文本检测算法新思路:基于区域重组的文本检测
- const变量生存周期_CTM期刊 |神经胶质瘤中HOTAIREZH2抑制剂AQB能上调CWF19L1并促进CDK4/6抑制剂帕博西尼对细胞周期的抑制...
- libjpeg学习2:内存篇
- Winson.Framework 1.5发布!
- 训练集误差和验证集误差
- 杨歌:金融电路与 Web3 经济模型原理
- qcom vfe笔记(msm8996平台)
- Win10系统更新后开机密码错误怎么解决?
- hadoop 任务运行到running job就卡住了 INFO mapreduce.Job: Running job: job_XXXXXXX
- Direct3D 12工作原理概述
- Quartus Prime 19.1 下载教程
热门文章
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
- 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题
- zoj 1010 (线段相交判断+多边形求面积)
- hdu-4302-Holedox Eating-线段树-单点更新,有策略的单点查询
- .net实现跨页面传值
- xcode 4.3.2 use storyboard创建TableView
- 搜集《ASP.NET中常用的26个优化性能方法》
- 重大要素改变中的机会选择包括_财务人员专业胜任能力要素及框架
- OpenCV+python:像素运算
- perl语言编程 第四版_2020年,5 种 将死的编程语言!