首页 > 其他分享 >【剑指 Offer】 44. 数字序列中某一位的数字

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

时间:2023-05-03 17:13:38浏览次数:41  
标签:count digit 数字 Offer 44 long start 确定

【题目】

数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。

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

 

示例 1:

输入:n = 3
输出:3

示例 2:

输入:n = 11
输出:0

 

限制:

    0 <= n < 2^31

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/shu-zi-xu-lie-zhong-mou-yi-wei-de-shu-zi-lcof
【思路】

确定每位数字所占长度的递推公式

确定目标位数在多少位数字上,然后确定具体的数字,然后确定在第几位上即可。

【代码】

class Solution {
    public int findNthDigit(int n) {
        //1.确定要查找的那个数是落在几位数上的
        //2.确定要查找的数是落在哪个数上的
        //3.确定要查找的数是那个数的第几位
        //1
        int digit = 1;
        long start =1;
        long count =9;
        while(n>count){
            n-=count;
            start *=10;
            digit++;
            //每个位数的数字占长度公式是 9*start*digit 如 三位 9*100*3 = 2700
            count = 9*start*digit;
        }
        //2
        long num = start+(n-1)/digit;
        //3
        return Long.toString(num).charAt((n - 1) % digit) - '0';
    }
}

 

标签:count,digit,数字,Offer,44,long,start,确定
From: https://www.cnblogs.com/End1ess/p/17369307.html

相关文章

  • 【剑指 Offer】 43. 1~n 整数中 1 出现的次数
    【题目】输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1、10、11和12,1一共出现了5次。 示例1:输入:n=12输出:5示例2:输入:n=13输出:6 限制:   1<=n<2^31来源:力扣(LeetCode)链接:https://leetcode.cn/problems/1nzheng-sh......
  • NC14402 求最大值
    题目链接题目题目描述给出一个序列,你的任务是求每次操作之后序列中(a[j]-a[i])/(j-i)【1<=i<j<=n】的最大值。操作次数有Q次,每次操作需要将位子p处的数字变成y.输入描述本题包含多组输入,每组输入第一行一个数字n,表示序列的长度。然后接下来一行输入n个数,表示原先序列的样子。......
  • 剑指 Offer II 022. 链表中环的入口节点
    题目链接:剑指OfferII022.链表中环的入口节点方法一:哈希解题思路统计走过的节点,当第一次遇到重复的节点时,即为入口节点,否则为\(null\)。代码classSolution{public:ListNode*detectCycle(ListNode*head){unordered_map<ListNode*,bool>cache;......
  • 数字证书编码ASN.1
    查看姓名、学号的16进制ASCII码echo-n"LiuJinming"|od-tc-tx1echo-n"20201327"|od-tc-tx1对TBSCertificate进行DER编码1.序列号1174(0x0496)2.证书签发者DN="CN=VirtualCA证书有效期=20200222000000-202202220000004.证书持有者DN=CN=LiuJinming,OU=Pers......
  • 剑指 Offer II 020. 回文子字符串的个数
    题目链接:剑指OfferII020.回文子字符串的个数方法一:动态规划解题思路状态表示:\(dp[i][j]\)表示子字符串\(s[i,j]\)是否为回文串;状态计算:若\(s[i]\)!=\(s[j]\),显然不是;若\(s[i]\)==\(s[j]\),有以下几种可能:\(i\)==\(j\),只有一个字符,是回文串;\(i\)+\(1\)......
  • 数字化项目分析
    神州山河对于数据治理和数据中台的项目,从咨询的角度可以进行架构设计,而对主数据,可以提交财务主数据标准制定财务主数据组织与职责设计财务主数据数据分发设计财务主数据信息与数据清理系统集成与系统上线1、某地产集团数据管理平台(数据中台)咨询项目项目核心交付内容:地产/商业/......
  • 「BZOJ2144」跳跳棋-题解
    「BZOJ2144」跳跳棋个人评价挺好的一道题,难点在于想到树这个结构和建树1题面跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。我们要通过最少的跳动把他们的位置移......
  • 数字asic流程实验(EX)VCS+Verdi前仿真&后仿真
    数字asic流程实验(EX)VCS+Verdi前仿真&后仿真1.前言写数字asic流程实验系列博客已经过去一年多了,现在也算结束了纯小白的状态,稍微有了一些数字前端开发经验。在老的系列教程里面用的前仿后仿工具还是modelsim,实际上业界主流工具还是功能更强大的VCS和Verdi。两个也都是synopsys家......
  • 数字三角形模型
    数字三角形模型给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。状态表示:\(f[i][j]\)代表从\((1,1)\)到\((i,j)\)的路径和最大值状态属性:\(MAX\)状态计算:\((......
  • 《花雕学AI》27:如何在ChatGPT时代提高数字媒体艺术的原创性和价值?
    引言数字媒体艺术是指使用各种数字、信息技术制作的各种形式的有独立审美价值的艺术作品,具有模拟现实的虚拟性、艺术创造的想象性、交互性和使用网络媒体的基本特征。数字媒体艺术是一个跨自然科学、社会科学和人文科学的综合性学科,集中体现了“科学、艺术和人文”的理念。数字媒......