Skip to content

Commit 9d6c7e5

Browse files
committed
feat: add solutions to lc problem: No.0902
No.0902.Numbers At Most N Given Digit Set
1 parent 2e984af commit 9d6c7e5

File tree

17 files changed

+540
-43
lines changed

17 files changed

+540
-43
lines changed

lcci/17.06.Number Of 2s In Range/README.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ class Solution:
7171
return ans
7272

7373
a = [0] * 12
74-
l = 1
74+
l = 0
7575
while n:
76+
l += 1
7677
a[l] = n % 10
7778
n //= 10
78-
l += 1
7979
return dfs(l, 0, True)
8080
```
8181

@@ -89,9 +89,9 @@ class Solution {
8989
private int[][] dp = new int[12][12];
9090

9191
public int numberOf2sInRange(int n) {
92-
int len = 1;
92+
int len = 0;
9393
while (n > 0) {
94-
a[len++] = n % 10;
94+
a[++len] = n % 10;
9595
n /= 10;
9696
}
9797
for (var e : dp) {
@@ -129,9 +129,9 @@ public:
129129
int dp[12][12];
130130

131131
int numberOf2sInRange(int n) {
132-
int len = 1;
132+
int len = 0;
133133
while (n) {
134-
a[len++] = n % 10;
134+
a[++len] = n % 10;
135135
n /= 10;
136136
}
137137
memset(dp, -1, sizeof dp);
@@ -170,11 +170,11 @@ func numberOf2sInRange(n int) int {
170170
dp[i][j] = -1
171171
}
172172
}
173-
l := 1
173+
l := 0
174174
for n > 0 {
175+
l++
175176
a[l] = n % 10
176177
n /= 10
177-
l++
178178
}
179179
var dfs func(int, int, bool) int
180180
dfs = func(pos, cnt int, limit bool) int {

lcci/17.06.Number Of 2s In Range/README_EN.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ class Solution:
3939
return ans
4040

4141
a = [0] * 12
42-
l = 1
42+
l = 0
4343
while n:
44+
l += 1
4445
a[l] = n % 10
4546
n //= 10
46-
l += 1
4747
return dfs(l, 0, True)
4848
```
4949

@@ -55,9 +55,9 @@ class Solution {
5555
private int[][] dp = new int[12][12];
5656

5757
public int numberOf2sInRange(int n) {
58-
int len = 1;
58+
int len = 0;
5959
while (n > 0) {
60-
a[len++] = n % 10;
60+
a[++len] = n % 10;
6161
n /= 10;
6262
}
6363
for (var e : dp) {
@@ -95,9 +95,9 @@ public:
9595
int dp[12][12];
9696

9797
int numberOf2sInRange(int n) {
98-
int len = 1;
98+
int len = 0;
9999
while (n) {
100-
a[len++] = n % 10;
100+
a[++len] = n % 10;
101101
n /= 10;
102102
}
103103
memset(dp, -1, sizeof dp);
@@ -136,11 +136,11 @@ func numberOf2sInRange(n int) int {
136136
dp[i][j] = -1
137137
}
138138
}
139-
l := 1
139+
l := 0
140140
for n > 0 {
141+
l++
141142
a[l] = n % 10
142143
n /= 10
143-
l++
144144
}
145145
var dfs func(int, int, bool) int
146146
dfs = func(pos, cnt int, limit bool) int {

lcci/17.06.Number Of 2s In Range/Solution.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ class Solution {
44
int dp[12][12];
55

66
int numberOf2sInRange(int n) {
7-
int len = 1;
7+
int len = 0;
88
while (n) {
9-
a[len++] = n % 10;
9+
a[++len] = n % 10;
1010
n /= 10;
1111
}
1212
memset(dp, -1, sizeof dp);

lcci/17.06.Number Of 2s In Range/Solution.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ func numberOf2sInRange(n int) int {
77
dp[i][j] = -1
88
}
99
}
10-
l := 1
10+
l := 0
1111
for n > 0 {
12+
l++
1213
a[l] = n % 10
1314
n /= 10
14-
l++
1515
}
1616
var dfs func(int, int, bool) int
1717
dfs = func(pos, cnt int, limit bool) int {

lcci/17.06.Number Of 2s In Range/Solution.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ class Solution {
33
private int[][] dp = new int[12][12];
44

55
public int numberOf2sInRange(int n) {
6-
int len = 1;
6+
int len = 0;
77
while (n > 0) {
8-
a[len++] = n % 10;
8+
a[++len] = n % 10;
99
n /= 10;
1010
}
1111
for (var e : dp) {

lcci/17.06.Number Of 2s In Range/Solution.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ def dfs(pos, cnt, limit):
1111
return ans
1212

1313
a = [0] * 12
14-
l = 1
14+
l = 0
1515
while n:
16+
l += 1
1617
a[l] = n % 10
1718
n //= 10
18-
l += 1
1919
return dfs(l, 0, True)

solution/0200-0299/0233.Number of Digit One/README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,9 @@ class Solution {
105105
private int[][] dp = new int[12][12];
106106

107107
public int countDigitOne(int n) {
108-
int len = 1;
108+
int len = 0;
109109
while (n > 0) {
110-
a[len++] = n % 10;
110+
a[++len] = n % 10;
111111
n /= 10;
112112
}
113113
for (var e : dp) {
@@ -145,9 +145,9 @@ public:
145145
int dp[12][12];
146146

147147
int countDigitOne(int n) {
148-
int len = 1;
148+
int len = 0;
149149
while (n) {
150-
a[len++] = n % 10;
150+
a[++len] = n % 10;
151151
n /= 10;
152152
}
153153
memset(dp, -1, sizeof dp);
@@ -186,11 +186,11 @@ func countDigitOne(n int) int {
186186
dp[i][j] = -1
187187
}
188188
}
189-
l := 1
189+
l := 0
190190
for n > 0 {
191+
l++
191192
a[l] = n % 10
192193
n /= 10
193-
l++
194194
}
195195
var dfs func(int, int, bool) int
196196
dfs = func(pos, cnt int, limit bool) int {

solution/0200-0299/0233.Number of Digit One/README_EN.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ class Solution {
6666
private int[][] dp = new int[12][12];
6767

6868
public int countDigitOne(int n) {
69-
int len = 1;
69+
int len = 0;
7070
while (n > 0) {
71-
a[len++] = n % 10;
71+
a[++len] = n % 10;
7272
n /= 10;
7373
}
7474
for (var e : dp) {
@@ -106,9 +106,9 @@ public:
106106
int dp[12][12];
107107

108108
int countDigitOne(int n) {
109-
int len = 1;
109+
int len = 0;
110110
while (n) {
111-
a[len++] = n % 10;
111+
a[++len] = n % 10;
112112
n /= 10;
113113
}
114114
memset(dp, -1, sizeof dp);
@@ -147,11 +147,11 @@ func countDigitOne(n int) int {
147147
dp[i][j] = -1
148148
}
149149
}
150-
l := 1
150+
l := 0
151151
for n > 0 {
152+
l++
152153
a[l] = n % 10
153154
n /= 10
154-
l++
155155
}
156156
var dfs func(int, int, bool) int
157157
dfs = func(pos, cnt int, limit bool) int {

solution/0200-0299/0233.Number of Digit One/Solution.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ class Solution {
44
int dp[12][12];
55

66
int countDigitOne(int n) {
7-
int len = 1;
7+
int len = 0;
88
while (n) {
9-
a[len++] = n % 10;
9+
a[++len] = n % 10;
1010
n /= 10;
1111
}
1212
memset(dp, -1, sizeof dp);

solution/0200-0299/0233.Number of Digit One/Solution.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ func countDigitOne(n int) int {
77
dp[i][j] = -1
88
}
99
}
10-
l := 1
10+
l := 0
1111
for n > 0 {
12+
l++
1213
a[l] = n % 10
1314
n /= 10
14-
l++
1515
}
1616
var dfs func(int, int, bool) int
1717
dfs = func(pos, cnt int, limit bool) int {

solution/0200-0299/0233.Number of Digit One/Solution.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ class Solution {
33
private int[][] dp = new int[12][12];
44

55
public int countDigitOne(int n) {
6-
int len = 1;
6+
int len = 0;
77
while (n > 0) {
8-
a[len++] = n % 10;
8+
a[++len] = n % 10;
99
n /= 10;
1010
}
1111
for (var e : dp) {

0 commit comments

Comments
 (0)