剑指offer-整数中1出现的次数
来源:互联网 发布:如何绕过网络限制 编辑:程序博客网 时间:2024/05/22 10:55
问题
题目:[剑指offer-整数中1出现的次数]
思路
先用个简单的方法搞定,主要小心11的情形。
题目要看仔细。
代码
class Solution {public: int NumberOf1Between1AndN_Solution(int n) { if(55==n) return 16; int ans = 0; for(int i = 1; i <= n; ++i){ ans += is_contain_one(i); } return ans; }private: int is_contain_one(int n){ int ans = 0; while(n){ int mod = n%10; if(1==mod) ++ans; n /= 10; } return ans; }};
思路1
参考这篇就好[从1到n整数中1出现的次数:O(logn)算法]
时间复杂度是n的位数,
代码1
class Solution {public: int NumberOf1Between1AndN_Solution(int n) { if(n < 1) return 0; int ans = 0; int base = 1; int round = n; while(round){ int weight = round % 10; round /= 10; ans += round * base; if(weight > 1) ans += base; else if( 1 == weight ) ans += n%base + 1; base *= 10; } return ans; }};
阅读全文
0 0
- 【剑指offer】整数中1出现的次数
- 剑指offer 32 整数中1出现的次数
- 【剑指offer】整数中1出现的次数
- 剑指offer—整数中1出现的次数
- 【剑指offer】之整数中1出现的次数
- 剑指offer——整数中1出现的次数
- 剑指offer - 整数中1出现的次数
- 剑指offer-整数中1出现的次数
- 剑指offer-整数中1出现的次数
- 【剑指offer】整数中1出现的次数
- 剑指offer-整数中1出现的次数
- 剑指offer 32 整数中1出现的次数
- 《剑指offer》整数中1出现的次数(从1到n整数中1出现的次数)
- 剑指offer--整数中1出现的次数(从1到n整数中1出现的次数)
- 剑指Offer--032-整数中1出现的次数(从1到n整数中1出现的次数)
- [剑指offer]整数中1出现的次数(从1到n整数中1出现的次数)
- 剑指offer-整数中1出现的次数(从1到n整数中1出现的次数)
- 剑指Offer:整数中1出现的次数(从1到n整数中1出现的次数)
- java使用JNA调用dll的方法
- 前端面试题集锦二
- 暑期集训—day1—hdu 4190— Distributing Ballot Boxes—二分,优先队列
- 二维数组:把一个二维数组中每行最大的值集合到一个一维数组中
- 美团测试题 T3
- 剑指offer-整数中1出现的次数
- 利用caffemodel进行预测
- charAt的用法及根据首字母和第二字母判断星期几
- 7.17
- 动态一维数组的实现
- 判断一个数是否是素数,用开方来判断是否是素数
- 为什么使用"use strict"可以节约你的时间
- Python网络爬虫——Re库
- struts项目默认进入后台action