1、逐位统计

我们统计每一位k上面可能出现1的次数:1、对于每一位k上面的出现的1,我们首先统计其出现 ( n / 1 0 k ) × 1 0 k − 1 (n/10^k)\times10^{k-1} (n/10k)×10k−1次的1;2、考虑到存在余数的情况,我们还需要比较剩余余数中出现1的次数,为 ( n % 1 0 k ) − 1 0 k − 1 + 1 (n\%10^k)-10^{k-1}+1 (n%10k)−10k−1+1,当其小于0时我们将其置为0,当其大于 1 0 k − 1 10^{k-1} 10k−1时将其置为 1 0 k − 1 10^{k-1} 10k−1。最终我们逐位统计即可获得每一位上出现1的次数。

class Solution {public:int countDigitOne(int n) {long long mulk = 1;int ans = 0;for (int k = 0; n >= mulk; ++k) {ans += (n / (mulk * 10)) * mulk + min(max(n % (mulk * 10) - mulk + 1, 0LL), mulk);mulk *= 10;}return ans;}
};

LeetCode-剑指43-1-n整数中出现1的次数相关推荐

  1. 【剑指offer】_11整数中1出现的次数

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  2. 2021-09-04剑指Offer43.1~n整数中1出现的次数

    暴力解法,超过时预定 class Solution {public:int countDigitOne(int n) {int counter = 0;for(int i = 1;i <= n; ...

  3. leetcode:剑指 Offer 56 - I. 数组中数字出现的次数

    故心故心故心故心小故冲啊 文章目录 题目 一.解法一:set(利用不重复特性) 二.解法二:lowbit(x)位运算 题目 一.解法一:set(利用不重复特性) /*** @param {number ...

  4. 剑指Offer(43)1~n整数中1出现的次数

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  5. 【LeetCode笔记】剑指Offer 43. 1~n 整数中1出现的次数(Java、数位dp、偏数学)

    文章目录 题目描述 思路 && 代码 二刷 打卡第九天啦- 题目描述 有点像数字序列中的某一位 思路 && 代码 主体思路:从低到高,计算出每一位出现的1的个数. 三种 ...

  6. 《剑指offer》【剑指Offer 43.1 ~n整数中1出现的次数】

  7. 【算法】剑指 Offer 56 - II. 数组中数字出现的次数 II 【重刷】

    1.概述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 示例 1: 输入:nums = [3,4,3,3] 输出:4 示例 2: 输入:nums ...

  8. leetcode算法题--1~n整数中1出现的次数

    原题链接:https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/ int countDigitOne( ...

  9. 剑指offer 56 - 1.数组中数字出现的次数

    一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 1: 输入:nums = [4,1,4,6] ...

  10. 【算法】剑指 Offer 56 - I. 数组中数字出现的次数 【重刷】太难了

    1.概述 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 1: 输入:nums = [4,1 ...

最新文章

  1. 取代MybatisPlus?阿里推出了新 ORM 框架!(两者对比参考)
  2. 注意:阿里Druid连接池监控的两个坑
  3. [安全防护]StackGuard和StackShield
  4. Verilog篇(三)仿真原理
  5. 20162328蔡文琛 四则运算第一周
  6. Systemctl stop XXX 时间太长
  7. OpenCV伪彩色applyColorMap函数
  8. iOS手势操作简介(三)
  9. velocity自定义函数_velocity基本语法和总结
  10. 从结构体、内存池初始化到申请释放,详细解读鸿蒙轻内核的动态内存管理
  11. java正则表达式笔记_java正则表达式笔记
  12. python深拷贝和浅拷贝机制
  13. Ubuntu之systemd延时启动服务
  14. 第4章 更新Erlang.mk
  15. GB-T 15834-2011《标点符号用法》文档的格式问题
  16. 【DirectX学习笔记】01_D3D初始化准备-基本绘图概念
  17. 图片生成二维码最好的工具
  18. IIS 请求报503
  19. 拉结尔如何在电脑上玩 拉结尔模拟器玩法教程
  20. 计算二维紧束缚模型费米面和nesting程序新思路

热门文章

  1. excel版本问题解决方案
  2. 密码学03--go语言与非对称加密RSA算法的实现
  3. [设计模式] - 原型模式
  4. 前端/客户端/中间件/后端/核心开发—方向选择
  5. 网站服务器双机热备,服务器双机热备概述
  6. 现代软件工程 第一章 【概论】第2题——孙雪莹
  7. Netty websocket server压力测试
  8. 学习红帽linux(RHCE)的就业前景
  9. 用户教程:如何利用商权管理费2.0快速实现消费增值?
  10. 新疆计算机博士就业,逆袭 新疆大专毕业生就业率比博士还高