leetcode-233:数字 1 的个数

简介: leetcode-233:数字 1 的个数

题目

题目连接

给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。

示例 1:

输入:n = 13
输出:6

示例 2:

输入:n = 0
输出:0

解题

方法一:数位 DP

参考链接

class Solution {
public:
    int countDigitOne(int n) {
        string s=to_string(n);
        int m=s.size();
        if(m==1) return n>0?1:0;
        // 计算第 i 位前缀代表的数值,和后缀代表的数值
        // 例如 abcde 则有 ps[2] = ab; ss[2] = de
        vector<int> ps(m),ss(m);
        ss[0]=stoi(s.substr(1));
        for(int i=1;i<m-1;i++){
            ps[i]=stoi(s.substr(0,i));
            ss[i]=stoi(s.substr(i+1));
        }
        ps[m-1]=stoi(s.substr(0,m-1));
        int res=0;
        for(int i=0;i<m;i++){
            int x=s[i]-'0';// x 为当前位数值
            int len=m-i-1;//当前位后面长度
            int prefix=ps[i],suffix=ss[i];
            int tot=0;
            tot+=prefix*pow(10,len);
            if(x==0){}
            else if(x==1){
                tot+=suffix+1;
            }else{
                tot+=pow(10,len);
            }
            res+=tot;
        }
        return res;
    }
};
相关文章
|
SQL 弹性计算 安全
ECS权益问题之学生权益无法续费如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
Echarts渐变折线图的设置解决方案
Echarts渐变折线图的设置解决方案
225 0
|
人工智能 BI
区间问题之区间覆盖(看一遍就会系列)
区间问题之区间覆盖(看一遍就会系列)
|
索引
BackTrader 中文文档(二十一)(4)
BackTrader 中文文档(二十一)
178 0
|
数据库 数据安全/隐私保护
Failed to load resource: the server responded with a status of 404 ()出错的原因是,因为自己调试的时候,设置了与宝塔不一样的数据库
Failed to load resource: the server responded with a status of 404 ()出错的原因是,因为自己调试的时候,设置了与宝塔不一样的数据库
|
存储 缓存 监控
Sentry Web 前端监控 - 最佳实践(官方教程)
Sentry Web 前端监控 - 最佳实践(官方教程)
1486 0
Sentry Web 前端监控 - 最佳实践(官方教程)
|
Java Linux 开发工具
虹软人脸识别系统
虹软人脸识别系统
398 0
|
存储 算法 计算机视觉
OpenCV-寻找轮廓cv::findContours&绘制轮廓cv::drawContours
OpenCV-寻找轮廓cv::findContours&绘制轮廓cv::drawContours
165 0
|
存储 关系型数据库 MySQL
MySQL数据库系列(七)-------日志管理、备份与恢复
MySQL 的日志默认保存位置为/usr/local/mysql/data MySQL 的日志配置文件为 /etc/my.cnf,里面有个[mysqld]项。
387 0
MySQL数据库系列(七)-------日志管理、备份与恢复
|
存储 数据可视化 云计算
PIE Engine系列2 数据的上传、调用及下载(附源码超详细)
🧸🏆🏆在本文中,你将学到如何在PIE Engine平台上传、调用和下载矢量栅格数据,我将对不同数据的上传和下载的方法进行详细介绍。
1242 1