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

剑指offer-69、数字序列中某⼀位的数字

题⽬描述

数字以 0123456789101112131415... 的格式作为⼀个字符序列,在这个序列中第 2 位(从下标 0 开始计算)是 2 ,第 10 位是 1 ,第 13 位是 1 ,以此类题,请你输出第 n 位对应的数字。

示例1

输⼊:0
返回值:0

示例2
输⼊:2
返回值:2

示例3
输⼊:13
返回值:1

思路及解答

暴力法

通过逐步构造数字序列来找到第n位数字

public class Solution {public int findNthDigit(int n) {if (n < 0) return -1;if (n == 0) return 0; // 示例1特殊情况处理[2](@ref)StringBuilder sequence = new StringBuilder();int num = 0;// 逐步构建序列,直到长度超过nwhile (sequence.length() <= n) {sequence.append(num);num++;}// 返回第n位字符对应的数字值return sequence.charAt(n) - '0';}
}
  • 时间复杂度:O(n),需要构造长度至少为n的字符串
  • 空间复杂度:O(n),需要存储构造的字符串序列

数学规律

利用数字位数分布的数学规律,直接定位第n位所在的数字和具体位置

数字位数分布规律:

  • 1位数:0-9 → 10个数字 × 1位 = 10位
  • 2位数:10-99 → 90个数字 × 2位 = 180位
  • 3位数:100-999 → 900个数字 × 3位 = 2700位
  • k位数:9×10ᵏ⁻¹个数字 × k位
public class Solution {public int findNthDigit(int n) {if (n < 0) return -1;if (n == 0) return 0;int digit = 1;              // 数字位数(1位、2位、3位...)long start = 1;             // 当前位数范围的起始数字long count = 9;             // 当前位数范围内的数字总位数// 步骤1:确定n所在的数字位数while (n > count) {n -= count;             // 减去前一个位数范围的数字总位数digit++;                // 位数增加start *= 10;            // 起始数字扩大10倍count = 9L * digit * start; // 计算新的位数范围内的总位数}// 步骤2:确定n所在的具体数字long num = start + (n - 1) / digit; // 计算目标数字// 步骤3:确定n在数字中的具体位置并返回return Long.toString(num).charAt((n - 1) % digit) - '0';}
}
  • 时间复杂度:O(log₁₀n),循环次数与n的位数成正比
  • 空间复杂度:O(1),只使用常数级别变量

添0补齐

假设所有数字都是i位数,通过给较短数字前面添0,使所有数字位数相同,简化定位逻辑

public class Solution {public int findNthDigit(int n) {if (n < 0) return -1;if (n == 0) return 0;int i = 1; // 数字位数// 通过添0补齐,使所有数字都视为i位数while (i * Math.pow(10, i) < n) {n += Math.pow(10, i); // 添0增加的位数i++;}// 定位目标数字和具体位置String num = String.valueOf(n / i);return num.charAt(n % i) - '0';}
}
  • 时间复杂度:O(log₁₀n),与数学规律法相同
  • 空间复杂度:O(1),常数空间复杂度
http://www.jsqmd.com/news/311507/

相关文章:

  • 杰理之音乐模式下不停打断播放提示音,会出现异常死机【篇】
  • 2026年好用的点焊机品牌推荐,点焊机制造厂哪个值得选呢
  • 南昌推拉门选购,有哪些技术强且口碑好的品牌
  • 探寻系统门窗标杆之作市场口碑,贝克洛产品选购要点揭秘
  • 2026年品牌论坛优势大揭秘,十大平台排名
  • 2026年小型球磨机厂家排名,无锡新而立上榜了吗
  • 交通便利可靠酒店选购攻略,兰州靠谱的有哪些
  • 北京狗狗寄养哪家好?北京狗狗寄养哪家比较专业正规?2026年机构盘点
  • 神秘训练
  • 2025年最新气动高温调节阀批发厂家口碑排行榜单,精小型调节阀/调节阀/特种调节阀/气动高温调节阀/气动调节阀/气动三通调节阀调节阀企业排行
  • 2026年北京宠物寄养哪家好?北京宠物寄养专业正规机构盘点
  • JL-21-A3 低功耗雨量记录仪 准确监测 长期稳定记录
  • Oracle 26ai 本地通用版这次是真的来了
  • 实用指南:X-Macros(2)
  • 打卡信奥刷题(2763)用C++实现信奥题 P3800 Power 收集
  • GEO招商加盟服务价格多少,南方网通讯灵AI性价比高不高
  • 激光切管机正规厂商推荐,庆源激光售后服务怎么样
  • 手机版安卓版IDM下载神器,100Mb/s+!支持磁力!(附下载地址)
  • 【Vue】13 Vue技术—— Vue 中的键盘事件处理详解
  • 2026年上海老房改造装修公司推荐:同济经典设计,老旧房子装修/二手房装修翻新/老房装修/二手房装修/老房翻新装修公司精选
  • idea使用学习记录
  • 2026嘉兴黄金回收费用分析,平湖、海盐及浙江黄金回收价格对比
  • 2026年铝合金花箱定制制造商推荐,万鑫美金属靠谱之选
  • 总结室内设计工作室推荐,对比银川各品牌的性价比
  • 2026年山东、湖南等地口碑好的玻璃温室制造商排名,冠丰温室上榜
  • 总结有实力的GEO优化专业公司,张家港地区推荐哪家
  • 盘点靠谱的高压电力检测品牌企业,这几家别错过
  • 2026年深圳靠谱的高压电力检测专业公司排名,哪家性价比高?
  • 云南AI搜索优化服务哪家好,云物集以技术实力脱颖而出
  • 剖析0.5W贴片太阳能板定制,深圳迪晟能源值得选择吗