首页 > 其他分享 >数字序列中某一位的数字(找规律)

数字序列中某一位的数字(找规律)

时间:2022-12-12 19:35:21浏览次数:60  
标签:10 digit 数字 idx pow ll 序列 规律


​面试题44. 数字序列中某一位的数字​

难度中等32

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

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

 

示例 1:


输入:n = 3 输出:3


示例 2:


输入:n = 11 输出:0


 

限制:

  • ​0 <= n < 2^31​

解题思路:

我们首先需要定位到这个数字属于哪一个大区间[1,9], [10,99],[100,999]...

然后再精确定位到哪一个数字

[1,9]有9个数字

[10,99]有90 * 2 个数字 (90是总共区间长度,每个数字占2个) 

[100,999]有900 * 3个数字

......

定位到某个区间后,我们通过除法定位到哪一个数字,比如我们到达这个区间后还有n位,(n-1)/digit可以定位到第几个数字,

(n-1)%digit可以定位到这个数字的第几个。

typedef long long ll;
class Solution {
public:
int findNthDigit(int n) {
ll idx=0;
ll digit = idx+1;
while(n - digit*9*(ll)pow(10,idx)>0)n-=digit*9*(ll)pow(10,idx),idx++,digit = idx+1;
digit = idx+1;
ll num = ((ll)n-1 ) / digit + pow(10,idx);
stringstream ss;
ss<<num;
string str;
ss>>str;
return str[(ll)(n-1)%digit ] - '0';
}
};

 

标签:10,digit,数字,idx,pow,ll,序列,规律
From: https://blog.51cto.com/u_15910522/5931538

相关文章

  • leetcode 128 最长连续序列(hash)
    ​​128.最长连续序列​​难度困难437给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100,4,200,1,3,2]输出:4解......
  • 拼多多 2020校招 多多的排列函数(找规律 构造)
    数列{An} 为N的一种排列。例如N=3,可能的排列共6种:123456​​1,2,3​​​​1,3,2​​​​2,1,3​​​​2,3,1​​​​3,1,2​​​​3,2,1​​定义函数F: 其中......
  • leetcode 128. 最长连续序列 (hash,暴力)
    题目大意:给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。解题思路:我们每次枚举数字的第一个,然后往后数有多少个。可以证明每个数字只会被......
  • 剑指offer 序列化二叉树
    题目描述请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可......
  • (转)J2ME中随机数字的生成
    J2ME和​​J2SE​​不同,不能使用Math类的​​random​​来生成随机数字,只能使用java.util包的Random类来生成随机数字。1、创建Random类型的对象:R......
  • Django自带的序列化组件
    Django自带的序列化组件(为drf做铺垫)(drf:djangorestframework)#在前端获取到,后端用户表里所有的数据,并且是列表套字典的格式#views.pyfromdjango.httpimport......
  • sql中查询语句如何让字符串转化数字方法
    错误方法:convert(int,字段名)或者 cast(字段名asint)函数对的,但是这样写完全错误!!!!!应该CONVERT(字段名,SIGNED)或者CAST(字段名ASSIGNEDinteger)例如:a、SELECTC......
  • AI基础:特征工程-数字特征处理
    0.导语特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。在此之前,我已经写了以下几篇AI基础的快速入门,本篇文......
  • 深度学习笔记 第五门课 序列模型 第二周 自然语言处理与词嵌入
    本文是吴恩达老师的深度学习课程[1]笔记部分。作者:黄海广[2]主要编写人员:黄海广、林兴木(第四所有底稿,第五课第一二周,第三周前三节)、祝彦森:(第三课所有底稿)、贺志尧(第五课第......
  • CAD尺寸标注数字大小怎么设置?
    在CAD设计过程中,为了能够在图形中添加测量注释,必然会用到CAD标注工具,如:线型标注、角度标注、半径标注、直径标注和坐标标注等。可是CAD标注完成后,如果标注数字太大或太小该......