当前位置: 首页 > news >正文

leetcode386. Lexicographical Numbers

题目要求

Given an integer n, return 1 - n in lexicographical order.

For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9].

Please optimize your algorithm to use less time and space. The input size may be as large as 5,000,000.

将1~n这n个数字按照字母序排序,并返回排序后的结果。
即如果n=13,则1~13的字母序为1,10,11,12,13,2,3,4,5,6,7,8,9

思路和代码

这题其实要求我们将数字是做字母来进行排序,因此当我们排序的时候可以看到,假如已知当前的数字为i,则它首先后一位数字应当是(i x 10),如果(i x 10)大于n,再考虑i+1, 如果i+1也大于n,此时再考虑(i/10)+1

    public List<Integer> lexicalOrder(int n) {
        List<Integer> result = new ArrayList<Integer>();
        for(int i = 1 ; i<=9 ; i++) {
            lexicalOrder(n, i, result);
        }
        return result;
    }
    
    public void lexicalOrder(int n, int cur, List<Integer> result) {
        if(cur > n) return;
        result.add(cur);
        for(int i = 0 ; i <=9 ; i++) {
            lexicalOrder(n, cur*10+i, result);
        }
    }

clipboard.png
想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号!将会不定期的发放福利哦~

相关文章:

  • 30秒的PHP代码片段(1)数组 - Array
  • docker-2-安装
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用rsyslog收集日志
  • 日剧·日综资源集合(建议收藏)
  • 码农张的Bug人生 - 见面之礼
  • Java求两个数平均值
  • 01炼数成金TensorFlow基本概念
  • Spark调度模块
  • 封装dialog弹窗
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法
  • 搭建gitbook 和 访问权限认证
  • 测试开发系类之接口自动化测试
  • Chrome 控制台报错Unchecked runtime.lastError: The message port closed before a response was received...
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Android框架之Volley
  • CSS 专业技巧
  • ES6--对象的扩展
  • golang中接口赋值与方法集
  • java 多线程基础, 我觉得还是有必要看看的
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript类型识别
  • Java反射-动态类加载和重新加载
  • js数组之filter
  • Python - 闭包Closure
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Twitter赢在开放,三年创造奇迹
  • Unix命令
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 浮现式设计
  • 力扣(LeetCode)56
  • 前端面试总结(at, md)
  • 软件开发学习的5大技巧,你知道吗?
  • 使用 Docker 部署 Spring Boot项目
  • 项目实战-Api的解决方案
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • gunicorn工作原理
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​2021半年盘点,不想你错过的重磅新书
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #每天一道面试题# 什么是MySQL的回表查询
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $.ajax中的eval及dataType
  • (¥1011)-(一千零一拾一元整)输出
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (多级缓存)缓存同步
  • (分布式缓存)Redis哨兵
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (十六)一篇文章学会Java的常用API