给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。

注意:1 ≤ k ≤ n ≤ 109。

示例 :

输入:
n: 13   k: 2输出:
10解释:
字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。

class Solution {
public:
    int findKthNumber(int n, int k) {
        int cur = 1;
        --k;
        while (k > 0) {
            long long step = 0, first = cur, last = cur + 1;
            while (first <= n) {
                step += min((long long)n + 1, last) - first;
                first *= 10;
                last *= 10;
            }
            if (step <= k) {
                ++cur;
                k -= step;
            } else {
                cur *= 10;
                --k; 
            }
        }
        return cur;
    }
};

440.字典序中的第K小数字相关推荐

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

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

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

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

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

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

  4. 在数组中找到第 k 小的数

    在数组中找到第 k 小的数 [要求] 如果 arr 长度为 N,要求时间复杂度为 O(N),额外空间复杂度为 O(1). public static int[] getMinKNumByHeap(in ...

  5. 从2个有序数组中找第k小那个数

    系列文章目录 提示:AC==accepted,即LeetCode上提交代码通过,我刷题的代码用的是java,但是C++一个道理,算法思想一样,而且c++和java非常类似,python需要自己写,但是 ...

  6. 计算正整数n中的第k位数字

    题目描述 编写程序,输入正整数n,然后通过调用函数digit(n,k),使得函数返回正整数n中的第k位数字(从右边算起).例如,digit(829,1)返回9,digit(829,2)返回2,而dig ...

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

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

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

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

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

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

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

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

最新文章

  1. Junit中error和failure区别
  2. 内存映射(mmap系统调用)
  3. 你的企业离DevOps转型成功,就差这“七步法”路线图
  4. Flume案例Ganglia监控
  5. openstack horizon dashboard_陕西高校邦OpenStack云平台实践章节答案
  6. 关于头文件的一道选择题
  7. Android子线程进度条不显示的问题
  8. Silverlight 2初尝及我的例子:Fanfou.com客户端——EatSilverlight
  9. Elasticsearch概念介绍文档路由与存储
  10. Matpower建模
  11. 台式计算机投影仪无线传输软件,台式机无线投屏到投影仪 4台PC电脑一个屏
  12. Vscode关闭自动更新
  13. 【科目一】你必须知道的驾考交通标志大全
  14. Winedit 下载第三方库
  15. Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)
  16. 华为云服务部署Rstudio Server
  17. 我的世界java刷活塞_我的世界高效活塞型刷怪塔 告别水流式
  18. ios开发中常用的一些软件
  19. 《启示录》给了我多少启示?--------《启示录》读后感
  20. python DbUtils 封装

热门文章

  1. python小爬虫,爬取文章(知乎专栏)片段
  2. 【转】nodejs 压缩文件 zip-local
  3. C# Winform 实现屏蔽键盘的win和alt+F4的实现代码
  4. Android package属性、package name和Application ID三者的联系及区别
  5. 解决windows 下 mysql命令行导入备份文件 查询时乱码的问题
  6. spring boot first
  7. Itil v3 process model
  8. Silverlight实例教程 - 自定义扩展Validation类,验证框架的总结和建议
  9. C#两个窗体间的相互通信(转)
  10. opencl JAVA编程_《OpenCL异构并行编程实战》第十二至十四章