Skip to content

Commit 1d9a37a

Browse files
committed
Merge remote-tracking branch 'origin/master'
# Conflicts: # README.md
2 parents 47f65ae + a49e695 commit 1d9a37a

File tree

3 files changed

+121
-0
lines changed

3 files changed

+121
-0
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
| :-----------------: | -------------------------------------- | :--------------: | :-------: | :------------: |
1616
| [1][1-question] | [Two Sum][1-tips] | [][1-kotlin] | | [][1-java] |
1717
| [771][771-question] | [Jewels and Stones][771-tips] | [][771-kotlin] | | [][771-java] |
18+
| [728][728-question] | [Self Dividing Numbers][728-tips] | | | [][728-java] |
1819
| [804][804-question] | [Unique Morse Code Words][804-tips] | | | [][804-java] |
1920

21+
2022
## [Medium](https://leetcode.com/problemset/all/?difficulty=Medium)题解
2123
| 题目 | 题解 | kotlin | JavaScript | Java |
2224
| :-----------------: | -------------------------------------- | :------------: | :-------: | :------------: |
@@ -36,11 +38,13 @@
3638
[2-question]: https://leetcode.com/problems/add-two-numbers/description/
3739
[771-question]: https://leetcode.com/problems/jewels-and-stones/description/
3840
[804-question]: https://leetcode.com/problems/unique-morse-code-words/description/
41+
[728-question]: https://leetcode.com/problems/self-dividing-numbers/description/
3942

4043
[1-tips]: ./tips/1/README.md
4144
[2-tips]: ./tips/2/README.md
4245
[771-tips]: ./tips/771/README.md
4346
[804-tips]: ./tips/804/README.md
47+
[728-tips]: ./tips/728/README.md
4448

4549
[1-kotlin]: ./src/_1/kotlin/Solution.kt
4650
[2-kotlin]: ./src/_2/kotlin/Solution.kt
@@ -50,3 +54,4 @@
5054
[2-java]: ./src/_2/Solution.java
5155
[771-java]: ./src/_771/Solution.java
5256
[804-java]: ./src/_804/Solution.java
57+
[728-java]: ./src/_728/Solution.java

src/_728/Solution.java

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package _728;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class Solution {
7+
public List<Integer> selfDividingNumbers(int left, int right) {
8+
9+
// // 打表方式
10+
// int sum = 0;
11+
// System.out.print("{");
12+
// for (int i = left; i < right; i++) {
13+
// int num = i;
14+
// int div;
15+
// while (num != 0) {
16+
// div = num % 10;
17+
// if (div == 0) {
18+
// break;
19+
// }
20+
// if ((i % div) != 0) {
21+
// break;
22+
// }
23+
// num /= 10;
24+
// }
25+
// if (num == 0) {
26+
// System.out.print(i + ",");
27+
// sum++;
28+
// }
29+
// }
30+
// System.out.println("}");
31+
// System.out.println("sum=" + sum);
32+
// return null;
33+
34+
int[] ans = new int[] {1,2,3,4,5,6,7,8,9,11,12,15,22,24,33,36,44,48,55,66,77,88,99,111,112,115,122,124,126,128,
35+
132,135,144,155,162,168,175,184,212,216,222,224,244,248,264,288,312,315,324,333,336,366,384,396,412,424,
36+
432,444,448,488,515,555,612,624,636,648,666,672,728,735,777,784,816,824,848,864,888,936,999,1111,1112,
37+
1113,1115,1116,1122,1124,1128,1131,1144,1155,1164,1176,1184,1197,1212,1222,1224,1236,1244,1248,1266,
38+
1288,1296,1311,1326,1332,1335,1344,1362,1368,1395,1412,1416,1424,1444,1448,1464,1488,1515,1555,1575,
39+
1626,1632,1644,1662,1692,1715,1722,1764,1771,1824,1848,1888,1926,1935,1944,1962,2112,2122,2124,2128,
40+
2136,2144,2166,2184,2196,2212,2222,2224,2226,2232,2244,2248,2262,2288,2316,2322,2328,2364,2412,2424,
41+
2436,2444,2448,2488,2616,2622,2664,2688,2744,2772,2824,2832,2848,2888,2916,3111,3126,3132,3135,3144,
42+
3162,3168,3171,3195,3216,3222,3264,3276,3288,3312,3315,3324,3333,3336,3339,3366,3384,3393,3432,3444,
43+
3492,3555,3612,3624,3636,3648,3666,3717,3816,3864,3888,3915,3924,3933,3996,4112,4116,4124,4128,4144,
44+
4164,4172,4184,4212,4224,4236,4244,4248,4288,4332,4344,4368,4392,4412,4416,4424,4444,4448,4464,4488,
45+
4632,4644,4824,4848,4872,4888,4896,4932,4968,5115,5155,5355,5515,5535,5555,5775,6126,6132,6144,6162,
46+
6168,6192,6216,6222,6264,6288,6312,6324,6336,6366,6384,6432,6444,6612,6624,6636,6648,6666,6696,6762,
47+
6816,6864,6888,6912,6966,6984,7112,7119,7175,7224,7266,7371,7448,7476,7644,7728,7777,7784,8112,8128,
48+
8136,8144,8184,8224,8232,8248,8288,8328,8424,8448,8488,8496,8616,8664,8688,8736,8824,8832,8848,8888,
49+
8928,9126,9135,9144,9162,9216,9288,9315,9324,9333,9396,9432,9612,9648,9666,9864,9936,9999};
50+
51+
ArrayList<Integer> list = new ArrayList<>(ans.length);
52+
for (int num : ans) {
53+
if (num >= left) {
54+
if (num > right) {
55+
break;
56+
}
57+
list.add(num);
58+
}
59+
}
60+
return list;
61+
}
62+
63+
public static void main(String[] args) {
64+
Solution solution = new Solution();
65+
solution.selfDividingNumbers(1, 10000);
66+
}
67+
}

tips/728/README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
## Description
2+
3+
A self-dividing number is a number that is divisible by every digit it contains.
4+
5+
For example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.
6+
7+
Also, a self-dividing number is not allowed to contain the digit zero.
8+
9+
Given a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.
10+
11+
**Example 1:**
12+
13+
```
14+
Input:
15+
left = 1, right = 22
16+
Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
17+
```
18+
19+
**Note:**
20+
21+
The boundaries of each input argument are 1 <= left <= right <= 10000.
22+
23+
## 思路
24+
25+
算出所给范围内的符合要求(自身能被所有位数上的数字所整除,例如128能被1、2、8整除,且自身不能含有0)的数字。范围为1-10000,范围较小可先打表。
26+
27+
### 打表(Java)
28+
29+
```
30+
int sum = 0;
31+
for (int i = left; i < right; i++) {
32+
int num = i;
33+
int div;
34+
while (num != 0) {
35+
div = num % 10;
36+
if (div == 0) {
37+
break;
38+
}
39+
if ((i % div) != 0) {
40+
break;
41+
}
42+
num /= 10;
43+
}
44+
if (num == 0) {
45+
System.out.println(i);
46+
sum++;
47+
}
48+
}
49+
```

0 commit comments

Comments
 (0)