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

Java | Leetcode Java题解之第440题字典序的第K小数字

题目:

题解:

class Solution {
    public 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;
    }

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

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

相关文章:

  • react-rnd的使用(react使用拖拽,缩放组件)
  • flinkOnYarn并配置prometheus+grafana监控告警
  • 探索 HTML 和 CSS 实现的蜡烛火焰
  • 排序算法 -快速排序
  • 统信UOS开发接口DTK
  • 分享 pdf 转 word 的免费平台
  • OIDC5-OIDC 的工作流程
  • 详解机器学习经典模型(原理及应用)——GBDT
  • springboot实战学习(7)(JWT令牌的组成、JWT令牌的使用与验证)
  • 计算机毕业设计之:微信小程序的校园闲置物品交易平台(源码+文档+讲解)
  • 【ARM 嵌入式 编译系列 10.5 -- ARM toolchain naming convention】
  • 如何在CMakeList项目中集成GNU Autotools 构建模块
  • JavaSE——Arrays类、System类
  • 网格大师OSGB转OBJ,转换类型中的非拓扑、拓扑、重建有什么区别?
  • 【Docker】01-Docker常见指令
  • 【Linux实践】实验八:Shell程序的创建及变量
  • Scala第二天
  • 【C++笔试强训】如何成为算法糕手Day5
  • 解决TikTok无法注册或注册不了的问题
  • 手机使用技巧:如何修复变砖的 Android 手机
  • 策略模式
  • [笔记]某S厂减速箱部件参数表 - 技术问题海外联系方式
  • JavaScript typeof运算符
  • 实变函数精解【25】
  • Excel锁定单元格,使其不可再编辑
  • QT开发:详解 Qt 多线程编程核心类 QThread:基本概念与使用方法