[LeetCode]233. Number of Digit One
来源:互联网 发布:爱狗人士杨玉华 知乎 编辑:程序博客网 时间:2024/05/11 17:06
https://leetcode.com/problems/number-of-digit-one/?tab=Description
1 ~ n一共多少个1
找每一位上面有多少个1,三种情况:该位为0、该位为1、该位大于1
标红部分先除后乘,如果当前位置是0或者1,那么加上8之后除10依然舍去,大于一才保留。如果当前位置是1,如192的最高位,那么出现次数为92 + 1次
public class Solution { public int countDigitOne(int n) { int ones = 0; for (long m = 1; m <= n; m *= 10) { ones += (n / m + 8) / 10 * m + (n / m % 10 == 1 ? n % m + 1 : 0); } return ones; }}
http://www.lintcode.com/en/problem/digit-counts/
统计0 ~ n中有多少个数字k
与上题类似,注意处理k=0的几个特殊case
class Solution { public int digitCounts(int k, int n) { // write your code here if (k == 0 && n == 0) { return 1; } int res = 0; for (long m = 1; m <= n; m *= 10) { if (k == 0 && m * 10 > n) { break; } res += (n / m + 9 - k) / 10 * m + (n / m % 10 == k ? n % m + 1 : 0); } return res; }};
0 0
- [leetcode] 233.Number of Digit One
- [LeetCode]233.Number of Digit One
- [leetcode] 233. Number of Digit One
- leetcode 233. Number of Digit One
- [LeetCode]233. Number of Digit One
- LeetCode 233. Number of Digit One
- leetcode.233. Number of Digit One
- LeetCode-233.Number of Digit One
- 233. Number of Digit One leetcode
- [LeetCode]233. Number of Digit One
- 【LeetCode】233. Number of Digit One
- Leetcode 233. Number of Digit One
- leetcode 233. Number of Digit One
- [leetcode]233. Number of Digit One
- leetcode 233. Number of Digit One
- leetcode 233. Number of Digit One
- Number of Digit One 【leetcode】
- [leetcode] Number of Digit One
- 欢迎使用CSDN-markdown编辑器
- [spark-hash学习]minhash算法实现细节
- idea中用maven配置springmvc!
- nVIDIA Jetson TX1 内核kernel编译
- 线程池测试
- [LeetCode]233. Number of Digit One
- C# ThreadAbortException
- Python3 urllib.error
- 连接查询与子查询
- bzoj1778 驱逐猪猡 [高斯消元+概率DP]
- 欢迎使用CSDN-markdown编辑器
- 菜单设置笔记
- 文章标题
- XSS漏洞解决方案之一:过滤器