这个方法复杂度过高,但是确是很容易理解与想到的。把每个数字转换成字符串,然后检查每个字符串是否含有1这个字符,计数。
class Solution { public: void transform(int a, int &cnt){ string s; s = to_string(a); for(int i=0; i<s.size(); i++){ if(s[i]=='1') cnt++; } } int NumberOf1Between1AndN_Solution(int n) { int cnt =0; for(int i=1; i<=n; i++){ transform(i,cnt); } return cnt; } };