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

C语言 | Leetcode C语言题解之第440题字典序的第K小数字

题目:

题解:

#define MIN(x, y) ((x) < (y) ? (x) : (y))

int getSteps(int curr, long n) {
    int steps = 0;
    long first = curr;
    long last = curr;
    while (first <= n) {
        steps += MIN(last, n) - first + 1;
        first = first * 10;
        last = last * 10 + 9;
    }
    return steps;
}

int findKthNumber(int n, int k) {
    int curr = 1;
    k--;
    while (k > 0) {
        int steps = getSteps(curr, n);
        if (steps <= k) {
            k -= steps;
            curr++;
        } else {
            curr = curr*10;
            k--;
        }
    }
    return curr;
}

http://www.kler.cn/a/324019.html

相关文章:

  • HbuilderX 插件开发-模板创建
  • 探索大规模语言模型(LLM)在心理健康护理领域中的应用与潜力
  • C++- 基于多设计模式下的同步异步日志系统
  • 深度解析 Feign
  • ubuntu下openssl签名证书制作流程及验证demo
  • 在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5
  • pycharm2024版 搭配Anaconda创建pytorch项目
  • 算法分析,主定理
  • 【解决方案】Java 互联网项目中常见的 Redis 缓存应用场景
  • c语言和c++一样吗
  • Spring Boot实现房产租赁业务逻辑
  • 互联网安全为什么要做风险评估:构建数字世界的坚固防线
  • 排序算法C++
  • 经济不好,但是遍地都是赚钱的机会
  • 万元购车平台源码开发总结与关键技术解析
  • 如何应对“.DevicData-C-XXXXXXXX”勒索病毒:建议与防范措施
  • fiddler抓包12_篡改请求(请求前断点)
  • *C++:list
  • 【C语言零基础入门篇 - 17】:排序算法
  • ubuntu系统下,c++图形库Matplot++配置
  • 深度学习(3):Tensor和Optimizer
  • 求职Leetcode题目(11)
  • 如何使用C语言接入Doris数据库
  • 线性表二——栈stack
  • 微信小程序开发系列之-在微信小程序中使用云开发
  • How to install JetBrains ToolBox in Ubuntu 22.04 LTS?