Skip to content

Commit 54b6a91

Browse files
committed
feat: add solutions to lc problem: No.0357
No.0357.Count Numbers with Unique Digits
1 parent 10c2a81 commit 54b6a91

File tree

6 files changed

+183
-2
lines changed

6 files changed

+183
-2
lines changed

solution/0300-0399/0357.Count Numbers with Unique Digits/README.md

+64-1
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,78 @@
2626
<!-- 这里可写当前语言的特殊实现逻辑 -->
2727

2828
```python
29-
29+
class Solution:
30+
def countNumbersWithUniqueDigits(self, n: int) -> int:
31+
if n == 0:
32+
return 1
33+
if n == 1:
34+
return 10
35+
ans, cur = 10, 9
36+
for i in range(n - 1):
37+
cur *= (9 - i)
38+
ans += cur
39+
return ans
3040
```
3141

3242
### **Java**
3343

3444
<!-- 这里可写当前语言的特殊实现逻辑 -->
3545

3646
```java
47+
class Solution {
48+
public int countNumbersWithUniqueDigits(int n) {
49+
if (n == 0) {
50+
return 1;
51+
}
52+
if (n == 1) {
53+
return 10;
54+
}
55+
int ans = 10;
56+
for (int i = 0, cur = 9; i < n - 1; ++i) {
57+
cur *= (9 - i);
58+
ans += cur;
59+
}
60+
return ans;
61+
}
62+
}
63+
```
64+
65+
### **C++**
66+
67+
```cpp
68+
class Solution {
69+
public:
70+
int countNumbersWithUniqueDigits(int n) {
71+
if (n == 0) return 1;
72+
if (n == 1) return 10;
73+
int ans = 10;
74+
for (int i = 0, cur = 9; i < n - 1; ++i)
75+
{
76+
cur *= (9 - i);
77+
ans += cur;
78+
}
79+
return ans;
80+
}
81+
};
82+
```
3783
84+
### **Go**
85+
86+
```go
87+
func countNumbersWithUniqueDigits(n int) int {
88+
if n == 0 {
89+
return 1
90+
}
91+
if n == 1 {
92+
return 10
93+
}
94+
ans := 10
95+
for i, cur := 0, 9; i < n-1; i++ {
96+
cur *= (9 - i)
97+
ans += cur
98+
}
99+
return ans
100+
}
38101
```
39102

40103
### **...**

solution/0300-0399/0357.Count Numbers with Unique Digits/README_EN.md

+64-1
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,76 @@
3636
### **Python3**
3737

3838
```python
39-
39+
class Solution:
40+
def countNumbersWithUniqueDigits(self, n: int) -> int:
41+
if n == 0:
42+
return 1
43+
if n == 1:
44+
return 10
45+
ans, cur = 10, 9
46+
for i in range(n - 1):
47+
cur *= (9 - i)
48+
ans += cur
49+
return ans
4050
```
4151

4252
### **Java**
4353

4454
```java
55+
class Solution {
56+
public int countNumbersWithUniqueDigits(int n) {
57+
if (n == 0) {
58+
return 1;
59+
}
60+
if (n == 1) {
61+
return 10;
62+
}
63+
int ans = 10;
64+
for (int i = 0, cur = 9; i < n - 1; ++i) {
65+
cur *= (9 - i);
66+
ans += cur;
67+
}
68+
return ans;
69+
}
70+
}
71+
```
72+
73+
### **C++**
74+
75+
```cpp
76+
class Solution {
77+
public:
78+
int countNumbersWithUniqueDigits(int n) {
79+
if (n == 0) return 1;
80+
if (n == 1) return 10;
81+
int ans = 10;
82+
for (int i = 0, cur = 9; i < n - 1; ++i)
83+
{
84+
cur *= (9 - i);
85+
ans += cur;
86+
}
87+
return ans;
88+
}
89+
};
90+
```
4591
92+
### **Go**
93+
94+
```go
95+
func countNumbersWithUniqueDigits(n int) int {
96+
if n == 0 {
97+
return 1
98+
}
99+
if n == 1 {
100+
return 10
101+
}
102+
ans := 10
103+
for i, cur := 0, 9; i < n-1; i++ {
104+
cur *= (9 - i)
105+
ans += cur
106+
}
107+
return ans
108+
}
46109
```
47110

48111
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public:
3+
int countNumbersWithUniqueDigits(int n) {
4+
if (n == 0) return 1;
5+
if (n == 1) return 10;
6+
int ans = 10;
7+
for (int i = 0, cur = 9; i < n - 1; ++i)
8+
{
9+
cur *= (9 - i);
10+
ans += cur;
11+
}
12+
return ans;
13+
}
14+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func countNumbersWithUniqueDigits(n int) int {
2+
if n == 0 {
3+
return 1
4+
}
5+
if n == 1 {
6+
return 10
7+
}
8+
ans := 10
9+
for i, cur := 0, 9; i < n-1; i++ {
10+
cur *= (9 - i)
11+
ans += cur
12+
}
13+
return ans
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public int countNumbersWithUniqueDigits(int n) {
3+
if (n == 0) {
4+
return 1;
5+
}
6+
if (n == 1) {
7+
return 10;
8+
}
9+
int ans = 10;
10+
for (int i = 0, cur = 9; i < n - 1; ++i) {
11+
cur *= (9 - i);
12+
ans += cur;
13+
}
14+
return ans;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution:
2+
def countNumbersWithUniqueDigits(self, n: int) -> int:
3+
if n == 0:
4+
return 1
5+
if n == 1:
6+
return 10
7+
ans, cur = 10, 9
8+
for i in range(n - 1):
9+
cur *= (9 - i)
10+
ans += cur
11+
return ans

0 commit comments

Comments
 (0)