剑指offer(C++)-JZ44:数字序列中某一位的数字(算法-搜索算法)

简介: 剑指offer(C++)-JZ44:数字序列中某一位的数字(算法-搜索算法)

题目描述:

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

数据范围: 0≤n≤10^9

示例:

输入:

10


返回值:

1

解题思路:

本题考察算法-搜索算法的使用。该题算是一道简单的数学题。


个位数字1-9共9位数字,9个位数;十位数字10-99共9*10个数字,90*2个位数;百位数字100-999共9*100个数字,900*3个位数。


基于上述规律,先确定目标位处于哪个区间,再根据当前区间内单个数字的位数进行推算,即可得到目标位的数字。

测试代码:

class Solution {
public:
    int findNthDigit(int n) 
    {
        // 当前的位数,个位是1,十位是2,百位是3
        int digit = 1;
        // 当前位数的起始,个位是1,十位是10,百位是100
        long long start = 1; 
        // 当前位数区间内数字个数,个位是9,十位是180,百位是2700
        long long sum = 9; 
        // 确定n处于哪一位数区间
        while(n > sum)
        {
            n -= sum;
            start *= 10; 
            digit++; 
            sum = 9 * start * digit;
        }
        // 确定n处于哪个数字上
        int num = start + (n - 1) / digit;
        // 确定n处于当前数字的哪一位上
        int index = (n - 1) % digit;
        return to_string(num)[index] - '0';
    }
};


相关文章
|
6小时前
|
机器学习/深度学习 安全 算法
【图论】【割点】【C++算法】928. 尽量减少恶意软件的传播 II
【图论】【割点】【C++算法】928. 尽量减少恶意软件的传播 II
|
6小时前
|
机器学习/深度学习 存储 人工智能
图搜索算法详解
【5月更文挑战第11天】本文介绍了图搜索算法的基础知识,包括深度优先搜索(DFS)、广度优先搜索(BFS)和启发式搜索(如A*算法)。讨论了图搜索中的常见问题、易错点及避免方法,并提供了BFS和A*的Python代码示例。文章强调了正确标记节点、边界条件检查、测试与调试以及选择合适搜索策略的重要性。最后,提到了图搜索在路径规划、游戏AI和网络路由等领域的应用,并概述了性能优化策略。
13 3
|
6小时前
|
机器学习/深度学习 存储 算法
数据结构与算法 动态规划(启发式搜索、遗传算法、强化学习待完善)
数据结构与算法 动态规划(启发式搜索、遗传算法、强化学习待完善)
12 1
|
6小时前
|
算法 搜索推荐 索引
数据结构与算法 搜索(下)
数据结构与算法 搜索(下)
8 0
|
6小时前
|
缓存 算法 搜索推荐
数据结构与算法 搜索(上)
数据结构与算法 搜索(上)
9 1
|
6小时前
|
数据采集 存储 算法
数据结构与算法 搜索
数据结构与算法 搜索
7 1
|
6小时前
|
机器学习/深度学习 存储 人工智能
【AI 初识】人工智能中使用了哪些不同的搜索算法?
【5月更文挑战第2天】【AI 初识】人工智能中使用了哪些不同的搜索算法?
|
6小时前
|
算法 搜索推荐 Java
图搜索算法详解
图搜索算法是用于在图结构中寻找特定节点或路径的算法。图是由节点(或顶点)和边组成的集合,节点代表对象,边代表节点之间的连接。图搜索算法广泛应用于各种领域,比如网络路由、社交媒体分析、推荐系统等。 V哥最近总是在多个地方都看到关于图搜索算法的讨论
|
6小时前
|
机器学习/深度学习 人工智能 运维
人工智能平台PAI 操作报错合集之请问Alink的算法中的序列异常检测组件,是对数据进行分组后分别在每个组中执行异常检测,而不是将数据看作时序数据进行异常检测吧
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
6小时前
|
算法 数据安全/隐私保护 数据格式
基于混沌序列的图像加解密算法matlab仿真,并输出加解密之后的直方图
该内容是一个关于混沌系统理论及其在图像加解密算法中的应用摘要。介绍了使用matlab2022a运行的算法,重点阐述了混沌系统的特性,如确定性、非线性、初值敏感性等,并以Logistic映射为例展示混沌序列生成。图像加解密流程包括预处理、混沌序列生成、数据混淆和扩散,以及密钥管理。提供了部分核心程序,涉及混沌序列用于图像像素的混淆和扩散过程,通过位操作实现加密。