LeetCode(剑指 Offer)- 43. 1~n 整数中 1 出现的次数
Posted 放羊的牧码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 43. 1~n 整数中 1 出现的次数相关的知识,希望对你有一定的参考价值。
题目链接:点击打开链接
题目大意:略
解题思路
相关企业
- 亚马逊
- 微软(Microsoft)
- 苹果(Apple)
AC 代码
- Java
class Solution
public int countDigitOne(int n)
int digit = 1, res = 0;
int high = n / 10, cur = n % 10, low = 0;
while(high != 0 || cur != 0)
if(cur == 0) res += high * digit;
else if(cur == 1) res += high * digit + low + 1;
else res += (high + 1) * digit;
low += cur * digit;
cur = high % 10;
high /= 10;
digit *= 10;
return res;
- C++
class Solution
public:
int countDigitOne(int n)
long digit = 1;
int high = n / 10, cur = n % 10, low = 0, res = 0;
while(high != 0 || cur != 0)
if(cur == 0) res += high * digit;
else if(cur == 1) res += high * digit + low + 1;
else res += (high + 1) * digit;
low += cur * digit;
cur = high % 10;
high /= 10;
digit *= 10;
return res;
;
以上是关于LeetCode(剑指 Offer)- 43. 1~n 整数中 1 出现的次数的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(剑指 Offer)- 43. 1~n 整数中 1 出现的次数
LeetCode(剑指 Offer)- 43. 1~n 整数中 1 出现的次数
LeetCode(剑指 Offer)- 64. 求1+2+…+n
LeetCode13. 罗马数字转整数 / 剑指 Offer 42. 连续子数组的最大和 / 剑指 Offer 43. 1~n 整数中 1 出现的次数