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

400. 第 N 位数字

第 N 位数字

  • 题目描述
  • 尝试做法
  • 推荐做法

题目描述

给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …] 中找出并返回第 n 位上的数字。

示例 1:

输入:n = 3
输出:3
示例 2:

输入:n = 11
输出:0
解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, … 里是 0 ,它是 10 的一部分。

提示:

1 <= n <= 231 - 1

尝试做法

实话实说,差点题目没看懂,应该是找出1234567891011…的第n位数。

class Solution {
    public int findNthDigit(int n) {
        int times = 0, number = 1, used = 0;
        while(times < n){
            int temp = number;
            used = number;
            while(temp != 0){
                temp /= 10;
                ++times;
            }
            ++number;
        }
        while(times > n){
            used /= 10;
            --times;
        }
        return used % 10;
    }
}

我先使用了一种时间复杂度较高的方法,一位位遍历,直到满足条件,但是会在大数时超出时间限制。
然后我想到,可以通过0-9,10-99,100-999时times每次增加的速度是不同,如果能判断出第n位数所在的那个序列数的范围,就可以将两层嵌套的while变为一层。但是降低的时间复杂度有限。

推荐做法

class Solution {
    public int findNthDigit(int n) {
        int len = 1;
        while (len * 9 * Math.pow(10, len - 1) < n) {
            n -= len * 9 * Math.pow(10, len - 1);
            len++;
        }
        long s = (long) Math.pow(10, len - 1);
        s += n / len - 1;
        n -= len * (n / len);
        return n == 0 ? (int) (s % 10) : (int) ((s + 1) / Math.pow(10, len - n) % 10);
    }
}

作者:宫水三叶
链接:https://leetcode.cn/problems/nth-digit/solutions/1129553/gong-shui-san-xie-jian-dan-mo-ni-ti-by-a-w5wl/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

len用于确定第n位数所在序列数的位数

相关文章:

  • ajax组件是什么
  • zerotier搭建免费moon服务器
  • 2.5 Spring Boot异常处理全局化:@ControllerAdvice实战
  • 刷leetcode hot100--动态规划3.12
  • RHCE大纲
  • std::ranges::views::reverse, std::ranges::reverse_view
  • 什么是 Java 的 SPI(Service Provider Interface)机制?
  • doris:外表统计信息
  • mock的定义和使用场景
  • LORA中 软提示是什么
  • LoRA,DoRA,RSLoRA,LoRA+ 是什么
  • STM32外部中断
  • 复现 MoGe
  • 计算机网络:Socket编程 Tcp协议 第二弹
  • 传智杯-省赛-第二场(B组)题解
  • 限制数据库字段长度的公用写法:length和like和rlike对于限制字段长度的原理与区别
  • 【技海登峰】Kafka漫谈系列(九)SpringBoot整合Kafka多数据源配置
  • BFS最短路径(十六)127. 单词接龙 困难
  • 爬虫案例十四js逆向中国五矿
  • 2.库函数的模拟实现
  • 安徽省委副秘书长、省委政研室主任余三元调任省社科院院长
  • 王毅人民日报撰文:共商发展振兴,共建中拉命运共同体
  • 新闻1+1丨婚姻登记服务,如何跑出幸福加速度?
  • 教育部:启动实施县中头雁教师岗位计划,支撑县中全面振兴
  • 历史地理学者成一农重回母校北京大学,担任历史系教授
  • 老镇老宅楼:破旧,没产证,要不要更新?