1 Star 1 Fork 0

laodasbch/Leetcode-Complete-Guide

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
233.txt 942 Bytes
一键复制 编辑 原始数据 按行查看 历史
JunB(66哥) 提交于 2020-10-20 17:28 +08:00 . Create 233.txt
class Solution {
public:
int countDigitOne(int n) {
if(n<=0)return 0;
if(n<10)return 1;
int res=0;
vector<int>A;
A.push_back(1l);
int mul=10;
for(int i=1;i<9;i++){
int sum=A[A.size()-1]*10+mul;
A.push_back(sum);
mul*=10;
}
string s=to_string(n);
int cnt=s.size()-1;
int mod=1;
for(int i=0;i<cnt;i++){
mod*=10;
}
for(int i=0;i<s.size();i++){
int d=s[i]-'0';
if(i==s.size()-1){
if(d>0)res++;
break;
}
if(d==1){
res+=((n)%mod+1+A[cnt-1]);
}else if(d>1){
res+=(mod+(d)*A[cnt-1]);
}
mod/=10;
cnt--;
}
return res;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/laodasbch/Leetcode-Complete-Guide.git
git@gitee.com:laodasbch/Leetcode-Complete-Guide.git
laodasbch
Leetcode-Complete-Guide
Leetcode-Complete-Guide
master

搜索帮助