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;
}
相关文章:

零售连锁专卖信息化解决方案简介之二
连锁零售它提供了对商业连锁的整体管理,从商品采购开始到面向最终消费者各阶段都可以找到连锁零售的解决方案。连锁零售针对批发、连锁、零售业供应链中不同的业态提出了不同的解决方案。在信息管理系统的层次中隶属于经营决策型,可以帮助企业全面实现DS…

mysql客户端指令_mysql command line client(mysql命令行客户端)
mysql command line client(mysql命令行客户端)(2010-03-24 09:18:38)标签:文化分类:数据库1.输入密码:******2.ues mysql;使用Mysql3.show databases;显示数据库4.use register;使用数据库名为register5.show tables;显示register数据库中的…

StingBuffer
2019独角兽企业重金招聘Python工程师标准>>> 昨天面试问道一题:StringBuffer的底层实现原理是什么?当时想想应该是字符串数组吧,心里也不是有万分把握,面试结果只能等通知了(最没戏的结果)&…

[HAOI2015]按位或
Description 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行或(c,c的|,pascal的or)操作。选择数字i的概率是p[i]。保证0<p[i]<1,Σp[i]1问期望多少秒后,你手上的数…

leetcode-440 字典序的第K小数字
给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 10^9。 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。 字典排序数的实现可以…

centos 编译 mysql_Centos编译mysql
下载源码wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gztar zxvf mysql-5.6.23.tar.gz安装必要的包sudo yum install cmake gcc gcc-c ncurses-devel perl-Data-Dumper cmake ncurses-devel bison autoconf automake zlib* fiex* libxml* libmcrypt* …

java.lang.NoSuchMethodException 错误
报错: Stacktraces java.lang.NoSuchMethodException: com.gssw.action.ProAction.update() java.lang.Class.getMethod(Class.java:1607)org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.getActionMethod(AnnotationValidationInterce…

tomcat server.xml中文版
为什么80%的码农都做不了架构师?>>> Tomcat Server的结构图 该文件描述了如何启动Tomcat Server <Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources <Service> <Connector /> <Engine> &l…

idea(2)快捷键
CtrlE:最近编辑文件 CtrlJ:自动代码快捷 CtrlN:查找类 CtrlU:大小写转换 CtrlF12:outline Alt1:全屏 AltF1:类定位到左侧目录 AltInsert:万能创建 AltEnter:导入包 CtrlA…

leetcode-102 二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 方法一(…

mysql.err日志分析_Mysql日志解析
转载:https://www.cnblogs.com/Fly-Wind/p/5674382.html修改Mysql配置Mysql配置地址为:C:\Program Files (x86)\MySQL\MySQL Server 5.5如果无法修改可以把my.ini拷贝出来,修改完后,再拷贝回去!如果配置了Mysql的日志生成路径&…

linux进程间通信-XSI IPC
一 什么是XSI IPC 有三种 IPC我们称作XSI IPC,即消息队列、信号量以及共享存储器(共享内存),它们之间有很多相似之处。二 标识符和键 每个内核中的 IPC结构(消息队列、信号量或共享内存)都用一个非负整数的…

Linux命令之route - 显示和操作IP路由表
转自: http://codingstandards.iteye.com/blog/1125312 用途说明 route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同…

ActivityRouter 框架简单实用
ActivityRouter组件化开发小助手用法如下: 跟目录build.gradle dependencies {// activityRouterclasspath com.neenbedankt.gradle.plugins:android-apt:1.8}allprojects {repositories {// ActivityRoutermaven { url "https://jitpack.io" }} } module…

C++ 互斥锁和条件变量实现读写锁
最近的诸多面试经历确实让自己发现内功还不够,还需要持续的学习精进。 实现如下: class RWLock{private:int state;mutex mu;condition_variable cond;public:RWLock():state(0){}void rlock(){mu.lock();while(state < 0){cond.wait(mu);}state;mu…

经常用得到的安卓数据库基类
//创建数据库 public class DBCreate { public static void CreateDatabase(SQLiteDatabase db) { db.beginTransaction(); try { create_NetTaskBuffer(db); insert_SQL(db); db.setTransactionSuccessfu…

mysql5.7 zip安装配置_MySQL5.7的.zip文件的配置安装
由于MySQL5.7之后在javaEE中交互的端口发生了变化,而MySQL官网中5.6、5.7版本64位的只有.zip文件,而.zip文件不像直接下载installer一样可以获取到初始密码,需要通过管理员身份输入命令skip初始密码,所以记录.zip下安装配置过程。…

Linux vsftp配置详解
一.vsftpd说明:LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red HatEnterprise Linux中默认安装的是vsftpd.访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:(1)anonymous(匿名帐号)使用…

top命令详解-性能分析
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。 top命令说明 [www.linuxidc.comlinuxidc-t-tomcat-188-193 ~]$ top top - 16:07:37 up 241 days, 20:11, 1 user, load average: 0.96, 1.13, 1.2…

leetcode-53 最大子序和
题目描述如下: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,…

docker 离线安装 mysql_Oracle数据库之docker 离线环境安装oracle
本文主要向大家介绍了Oracle数据库之docker 离线环境安装oracle,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。因测试需要,需在内网的测试环境搭建一套docker Oracle 11g环境进行测试,测试环境为redhat 6.6 安装…

ios Develop mark
App Distribution Guidehttps://developer.apple.com/library/ios/documaentation/IDEs/Conceptual/AppDistributionGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40012582 马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today)https://developer.app…

联想打字必须按FN+数字-fn打字
对于联想G40、14英寸系列的本本,好多时候无意间可能把数字键锁定了。 这时候要做的是:打开运行--输入OSK--打开虚拟屏幕键盘。这时候可以找到 选项---打开数字键盘。 有时候某些电脑上没有NUMLOCK这个键。当小键盘打开的时候就又numlock这个键了。这时候…

每日记载内容总结50
Maven中的dependencyManagement 意义【原文链接】 在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。 pom.xml文件中,jar的版本判断的两种途径: (1):如果dependencies里的dependency自己没有声明versio…

leetcode-152 乘积最大子序列
题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为…

js 监听 安卓事件_百行代码实现js事件监听实现跨页面数据传输
百行代码实现js事件监听实现跨页面数据传输使用场景类似消息队列的使用场景,支持同页面和跨页面通信,发送消息和接收消息技术原理跨页面通信:基于事件监听,通过监听 storage事件监听回调机制,实现跨页面通信,让每个只操作自身页面的操作同页面事件监听:发送事件时,查找回调函数…

Centos安装GD库
tar zxvf ncurses-5.6.tar.gz 进入目录 cd ncurses-5.6 生成 makefile文件,再进一步编译 ./configure --prefix/usr --with-shared --without-debug 编译,编译时间稍微长些,稍等make 编译好最后就是安装了 make install 下面才开始安装 GD库…

centos7安装mongodb3.4
先下载安装包,OS选择RHEL 7.0 Linux 64-bit x64,package选择Server。 这里OS选6.2应该也行,没试过,如果linux版本是6.*的话注意选这个,如果选择7.0安装的时候会提示缺少glibc依赖(glibc版本过低)…

leetcode-300 最长上升子序列
题目描述: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对…

转载自——Json.net动态序列化以及对时间格式的处理
关于我工作中对Json处理的东西 第一:动态序列化类 第二:时间格式处理 通常我们一个类里 可能有十到更多的属性,但是我们序列化通常只需要序列化其中的 三到五个这样的话就会有多余的数据 如果 我只想序列化 id 跟name如何处理 这是我找的网上的方法: using Newtonsoft.Json…