当前位置: 首页 > 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...
  • CentOS 7 修改主机名
  • CSS 提示工具(Tooltip)
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • django开发-定时任务的使用
  • ECMAScript6(0):ES6简明参考手册
  • emacs初体验
  • iOS编译提示和导航提示
  • JS+CSS实现数字滚动
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Python_OOP
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 分类模型——Logistics Regression
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于web的全景—— Pannellum小试
  • 让你的分享飞起来——极光推出社会化分享组件
  • 通过几道题目学习二叉搜索树
  • 一、python与pycharm的安装
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (3)(3.5) 遥测无线电区域条例
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)http-server应用
  • (转)程序员技术练级攻略
  • .bat批处理(一):@echo off
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core中Emit的使用
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET Windows:删除文件夹后立即判断,有可能依然存在