题目

题链:440. 字典序的第K小数字

题解

官方题解:字典序的第K小数字

刚开始试了试直接遍历放到字符串数组中,然后字典排序,然后根据下标取出第k小的字符串转为整形数据,由于 1 <= k <= n <= 109 很明显是超时的。

代码:

    class Solution02 {public int findKthNumber(int n, int k) {String[] strs = new String[n];for (int i = 1; i <= n; i++) {strs[i-1] = String.valueOf(i);}Arrays.sort(strs);return Integer.parseInt(strs[k]);}}

看题解用了字典树,字典树就是构建一颗树从而避免线性的遍历,然后根据先序遍历找到第k小的数,具体看题解。

    class Solution {public int findKthNumber(int n, int k) {int cur = 1;k--;while (k > 0){int step = getStep(cur,n);if (step <= k){k -= step;cur++;}else {k--;cur = cur * 10;}}return cur;}int getStep(int cur,int n){long l = cur;long r = cur;int step = 0;while (l <= n){step += Math.min(n,r) - l + 1;l = l * 10;r = r * 10 + 9;}return step;}}

每日一题 字典序的第K小数字相关推荐

  1. LeetCode440. 字典序的第K小数字

    给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字. 题目很简单,但是题本身并不简单. LeetCode440. 字典序的第K小数字 一.偷懒技巧 一个偷懒的技巧是将数字转化为字符串, ...

  2. 440. 字典序的第K小数字

    440. 字典序的第K小数字 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 109. 示例 : 输入: n: 13 k: 2 输出: 10 解释: ...

  3. 【字节跳动面试题】字典序的第K小数字

    字典序的第K小数字 class Solution {public:typedef long long ll;ll count(ll a, ll n) {ll b = a + 1, cnt = 0;fo ...

  4. LeetCode —— 440. 字典序的第K小数字(Python)

    给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4 ...

  5. leetcode 440. 字典序的第K小数字(精)

    题目: 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 109. 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, ...

  6. Leetcode0440. 字典序的第K小数字(difficult,三种算法)

    目录 1. 题目描述 2. 解题分析 2.1 作弊的解法 2.2 哈希+减而治之 2.3 字典树 3. 代码实现 1. 题目描述 给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字. ...

  7. leetcode-440 字典序的第K小数字

    给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 10^9. 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10 ...

  8. 计算字典的个数_[LeetCode] 440. 字典序的第K小数字

    题目链接: https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order 难度:困难 通过率:28.4% 题目描述: ...

  9. D22 LeetCode 440.字典序的第K小数字(困难)

    一.题目 二.思路(自己) 题目要求是字典序排列,即按照字符串比较一样进行排列,前几天刚好面过类似的题,为了降低时间复杂度,我们可以采用红黑树进行排序. 使用TreeSet来存储里面的数组,重写比较器 ...

  10. 经典题:poj2104-区间第k小 整体二分学习

    写在前面 区间第k小 可以说是一个很经典的数据结构题了,这道题有很多种解法比如莫队离线.主席树.整体二分等等. 之前用莫队和主席树写过这道题,今天来学习一个以前不会的算法--整体二分. 因为最近遇到一 ...

最新文章

  1. Asp.net 不安全端口 解决chrome浏览器访问时提示:ERR_UNSAFE_PORT
  2. 与通用计算机相比 单片机具体有哪些特点,嵌入式系统-复习大纲_彭荣
  3. python if语句和循环语句
  4. c语言全局变量和局部变量问题汇总
  5. 复杂 SQL 查询跑不动?DRDS 只读实例来解决!
  6. php mysql pod_php – 连接到同一pod中的MySQL容器
  7. DWM1000 定位操作流程--[蓝点无限]
  8. 人工智能属于计算机科学研究方向,《人工智能》课程简介
  9. hdoj 4747 线段树
  10. windows配置本地的虚拟主机
  11. VUE 保证输入框无法输入半角数字以外的字符
  12. 解决浏览器访问GitHub响应时间长,速度慢的问题
  13. GNSS 常用缩略语汇总
  14. 030 正定二次型及判别法之定义法、特征值法、顺序主子式法
  15. 算法设计 - 二分法和三分法,洛谷P3382
  16. 多个python版本pip对应问题
  17. 用计算机画小鸡,水墨电脑画--丝瓜小鸡图
  18. 06_Callable接口
  19. 变革边缘——Web3.0の野望(上)
  20. unity Material的批量修改和单独处理

热门文章

  1. VOIP通信中影响语音质量的因素
  2. apache实现手机访问www网站自动跳转到WAP站点
  3. 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)...
  4. 进一步理解VC中的句柄
  5. 10.深入分布式缓存:从原理到实践 --- EVCache探秘
  6. 17. shell 脚本
  7. 12. 表数据入口(Table Data Gateway)
  8. php中的几个判断文件和目录的函数 is_file() is_dir() mkdir() file_exists()
  9. 计算机中的bit byte(B) mb gb 的关系
  10. 盒模型bug的解决方法