时间效率:整数中1出现的次数(从1到n整数中1出现的次数)
2016-09-04 20:18
267 查看
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。
代码一:
代码二(很精简,但不明白):
代码一:
代码二(很精简,但不明白):
public class Solution { public int NumberOf1Between1AndN_Solution(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; } }
相关文章推荐
- 剑指offer-5-面试32:从 1 到 n 整数中 1 出现的次数(时间效率)
- ##剑指offer 5.2 时间效率3 -1到N整数中1出现的次数
- 【剑指offer】5.2时间效率——面试题32:从1到n整数中1出现的次数
- 剑指offer:(32)时间效率 :整数中1出现的次数(从1到n整数中1出现的次数)
- 《剑指offer》刷题笔记(时间效率):整数中1出现的次数
- 剑指offer-第五章优化时间和空间效率(从1到n的整数中1出现的次数)
- (C++)剑指offer-31:整数中1出现的次数(时间效率)
- 时间效率:数组中出现次数超过一半的数字
- (C++)剑指offer-28:数组中出现次数超过一半的数字(时间效率)
- 【剑指offer】5.2时间效率——面试题29:数组中出现次数超过一半的数字
- 《剑指offer》刷题笔记(时间效率):数组中出现次数超过一半的数字
- 剑指offer 29题 【时间效率】数组中出现次数超过一半的数字
- 剑指offer-第五章优化时间和空间效率(数组中出现次数超过一半的数字)
- 剑指offer 5.2 时间效率1 - 数组中出现次数超过一半的数字
- PHP任意位数的大整数n统计n中各个数字出现的次数,并将结果以表格形式输出
- 【100题】第三十 求从1到n这n个整数的十进制表示中1出现的次数
- 随机产生50个整数,位于[10,50],统计每个数字出现的次数以及出现次数最多的数字与出现次数并打印.如果出现次数为0不打印,打印时要求升序
- 面试题:n个整数的序列,其中一个整数重复次数超过一半,在O(n)时间内找出该整数
- 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数
- 判断一个整数数组中是否有重复数字出现的O(n)时间复杂度算法