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

剑指 Offer 44.!! 数字序列中某一位的数字

参考资料
剑指 Offer 44. 数字序列中某一位的数字
中等
351
相关企业
数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。

请写一个函数,求任意第n位对应的数字。

示例 1:

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

输入:n = 11
输出:0

限制:

0 <= n < 2^31

思路:
其实并没有什么特别的……就是数数,边数边删(见下面代码的while循环),直到最后落在某个区间,这就能确定目标所在的位置是 几位数的群体(即退出while循环后的digit, 如果digit=2,那么说明落在10-99之间),
再在这个群体里定位是哪一个数字(见int num那一行。比如,27);
进一步,定位是这个数字的哪一位(见最后的return语句。比如,第一位,即7)
注意:从0开始数,也就是0就是第0位,1就是第1位。

class Solution {public int findNthDigit(int n) {int digit=1;int count=9;// int start=1;while(n>count){n-=count;digit++;start*=10;count = digit*start*9;//10-99, 100-999, }int num = start+(n-1)/digit;return Long.toString(num).charAt((n-1)%digit)-'0';// !! 注意这里取出第((n-1)%digit)个字符之后,怎么将它转化为整数再返回}// 参考资料:下面是LeetCode,K神的代码,可以看到大神把start,count这些增长比较快的数设置成Long型;注意最后将某个字符转成数字的代码;注意这代码已经将n=0的情况考虑在内,此时不进入while循环,(n-1)/digit=-1, so num=0.public int findNthDigit2(int n) {int digit = 1;long start = 1;long count = 9;while (n > count) { // 1.n -= count;digit += 1;start *= 10;count = digit * start * 9;}long num = start + (n - 1) / digit; // 2.return Long.toString(num).charAt((n - 1) % digit) - '0'; // 3.}}
http://www.lryc.cn/news/100166.html

相关文章:

  • 16K个大语言模型的进化树;81个在线可玩的AI游戏;AI提示工程的终极指南;音频Transformers课程 | ShowMeAI日报
  • Docker Compose 容器编排 + Docker--harbor私有仓库部署与管理
  • 九五从零开始的运维之路(其二十六)
  • 29.Git版本控制工具
  • 【算法题】2790. 长度递增组的最大数目
  • Qt设置开机自启动无法读取配置文件
  • 解决Font family [‘sans-serif’] not found问题
  • C语言进阶-2
  • Zabbix监控之分布式部署
  • vue2企业级项目(七)
  • PDPS教程:导出带颜色的JT格式2D布局图文件的另一种方法
  • AI面试官:Asp.Net 中使用Log4Net (二)
  • C# Solidworks二次开发:向量相关的数学函数API的使用介绍
  • table 导出表格 Excel
  • 基于 Flink SQL CDC 数据处理的终极武器
  • uniapp使用HQChart的k线,用webSocket更新数据
  • idea的Plugins中搜索不到插件
  • flask 实现简单的登录系统demo
  • Spring Security安全配置
  • 2023Java后端开发之100道常见经典面试题
  • Redis详解,包括安装命令,应用场景,优缺点,案列分析,各个开发语言如何应用
  • AI数字人:金融数字化转型的“关键先生”
  • mac关闭VPN之后,浏览器就不能够正常上网了(图解)
  • YOLOv5改进系列(17)——更换IoU之MPDIoU(ELSEVIER 2023|超越WIoU、EIoU等|实测涨点)
  • 基于WSL2、Ubuntu和VS Code的CUDA平台运行C语言程序
  • 构建外卖系统小程序,订单管理功能实现步骤详解
  • 用asp.net开发h5网页版视频播放网站,类似优酷,jellyfin,emby
  • Redis—相关背景
  • SSL 证书过期巡检脚本
  • leetcode 面试题 01.03. URL化