每日一题 字典序的第K小数字
题目
题链: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小数字相关推荐
- LeetCode440. 字典序的第K小数字
给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字. 题目很简单,但是题本身并不简单. LeetCode440. 字典序的第K小数字 一.偷懒技巧 一个偷懒的技巧是将数字转化为字符串, ...
- 440. 字典序的第K小数字
440. 字典序的第K小数字 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 109. 示例 : 输入: n: 13 k: 2 输出: 10 解释: ...
- 【字节跳动面试题】字典序的第K小数字
字典序的第K小数字 class Solution {public:typedef long long ll;ll count(ll a, ll n) {ll b = a + 1, cnt = 0;fo ...
- LeetCode —— 440. 字典序的第K小数字(Python)
给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4 ...
- leetcode 440. 字典序的第K小数字(精)
题目: 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 109. 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, ...
- Leetcode0440. 字典序的第K小数字(difficult,三种算法)
目录 1. 题目描述 2. 解题分析 2.1 作弊的解法 2.2 哈希+减而治之 2.3 字典树 3. 代码实现 1. 题目描述 给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字. ...
- leetcode-440 字典序的第K小数字
给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 10^9. 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10 ...
- 计算字典的个数_[LeetCode] 440. 字典序的第K小数字
题目链接: https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order 难度:困难 通过率:28.4% 题目描述: ...
- D22 LeetCode 440.字典序的第K小数字(困难)
一.题目 二.思路(自己) 题目要求是字典序排列,即按照字符串比较一样进行排列,前几天刚好面过类似的题,为了降低时间复杂度,我们可以采用红黑树进行排序. 使用TreeSet来存储里面的数组,重写比较器 ...
- 经典题:poj2104-区间第k小 整体二分学习
写在前面 区间第k小 可以说是一个很经典的数据结构题了,这道题有很多种解法比如莫队离线.主席树.整体二分等等. 之前用莫队和主席树写过这道题,今天来学习一个以前不会的算法--整体二分. 因为最近遇到一 ...
最新文章
- Asp.net 不安全端口 解决chrome浏览器访问时提示:ERR_UNSAFE_PORT
- 与通用计算机相比 单片机具体有哪些特点,嵌入式系统-复习大纲_彭荣
- python if语句和循环语句
- c语言全局变量和局部变量问题汇总
- 复杂 SQL 查询跑不动?DRDS 只读实例来解决!
- php mysql pod_php – 连接到同一pod中的MySQL容器
- DWM1000 定位操作流程--[蓝点无限]
- 人工智能属于计算机科学研究方向,《人工智能》课程简介
- hdoj 4747 线段树
- windows配置本地的虚拟主机
- VUE 保证输入框无法输入半角数字以外的字符
- 解决浏览器访问GitHub响应时间长,速度慢的问题
- GNSS 常用缩略语汇总
- 030 正定二次型及判别法之定义法、特征值法、顺序主子式法
- 算法设计 - 二分法和三分法,洛谷P3382
- 多个python版本pip对应问题
- 用计算机画小鸡,水墨电脑画--丝瓜小鸡图
- 06_Callable接口
- 变革边缘——Web3.0の野望(上)
- unity Material的批量修改和单独处理
热门文章
- VOIP通信中影响语音质量的因素
- apache实现手机访问www网站自动跳转到WAP站点
- 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)...
- 进一步理解VC中的句柄
- 10.深入分布式缓存:从原理到实践 --- EVCache探秘
- 17. shell 脚本
- 12. 表数据入口(Table Data Gateway)
- php中的几个判断文件和目录的函数 is_file() is_dir() mkdir() file_exists()
- 计算机中的bit byte(B) mb gb 的关系
- 盒模型bug的解决方法