File tree Expand file tree Collapse file tree 2 files changed +110
-0
lines changed
solution/2300-2399/2310.Sum of Numbers With Units Digit K Expand file tree Collapse file tree 2 files changed +110
-0
lines changed Original file line number Diff line number Diff line change 69
69
70
70
我们从小到达枚举 $n$,找到第一个满足 $num-n* k$ 是 $10$ 的倍数的 $n$。由于 $n$ 不会超过 $num$,因此 $n$ 最大枚举至 $num$。
71
71
72
+ 也可以只考虑个位,个位满足,高位随意。
73
+
72
74
** 方法二:记忆化搜索**
73
75
74
76
<!-- tabs:start -->
@@ -88,6 +90,17 @@ class Solution:
88
90
return - 1
89
91
```
90
92
93
+ ``` python
94
+ class Solution :
95
+ def minimumNumbers (self , num : int , k : int ) -> int :
96
+ if num == 0 :
97
+ return 0
98
+ for i in range (1 , 11 ):
99
+ if (k * i) % 10 == num % 10 and k * i <= num:
100
+ return i
101
+ return - 1
102
+ ```
103
+
91
104
``` python
92
105
class Solution :
93
106
def minimumNumbers (self , num : int , k : int ) -> int :
@@ -133,6 +146,22 @@ class Solution {
133
146
}
134
147
```
135
148
149
+ ``` java
150
+ class Solution {
151
+ public int minimumNumbers (int num , int k ) {
152
+ if (num == 0 ) {
153
+ return 0 ;
154
+ }
155
+ for (int i = 1 ; i <= 10 ; ++ i) {
156
+ if ((k * i) % 10 == num % 10 && k * i <= num) {
157
+ return i;
158
+ }
159
+ }
160
+ return - 1 ;
161
+ }
162
+ }
163
+ ```
164
+
136
165
### ** C++**
137
166
138
167
``` cpp
@@ -150,6 +179,19 @@ public:
150
179
};
151
180
```
152
181
182
+ ```cpp
183
+ class Solution {
184
+ public:
185
+ int minimumNumbers(int num, int k) {
186
+ if (!num) return 0;
187
+ for (int i = 1; i <= 10; ++i)
188
+ if ((k * i) % 10 == num % 10 && k * i <= num)
189
+ return i;
190
+ return -1;
191
+ }
192
+ };
193
+ ```
194
+
153
195
### ** Go**
154
196
155
197
``` go
@@ -167,6 +209,20 @@ func minimumNumbers(num int, k int) int {
167
209
}
168
210
```
169
211
212
+ ``` go
213
+ func minimumNumbers (num int , k int ) int {
214
+ if num == 0 {
215
+ return 0
216
+ }
217
+ for i := 1 ; i <= 10 ; i++ {
218
+ if (k*i)%10 == num%10 && k*i <= num {
219
+ return i
220
+ }
221
+ }
222
+ return -1
223
+ }
224
+ ```
225
+
170
226
### ** TypeScript**
171
227
172
228
``` ts
Original file line number Diff line number Diff line change @@ -73,6 +73,17 @@ class Solution:
73
73
return - 1
74
74
```
75
75
76
+ ``` python
77
+ class Solution :
78
+ def minimumNumbers (self , num : int , k : int ) -> int :
79
+ if num == 0 :
80
+ return 0
81
+ for i in range (1 , 11 ):
82
+ if (k * i) % 10 == num % 10 and k * i <= num:
83
+ return i
84
+ return - 1
85
+ ```
86
+
76
87
``` python
77
88
class Solution :
78
89
def minimumNumbers (self , num : int , k : int ) -> int :
@@ -116,6 +127,22 @@ class Solution {
116
127
}
117
128
```
118
129
130
+ ``` java
131
+ class Solution {
132
+ public int minimumNumbers (int num , int k ) {
133
+ if (num == 0 ) {
134
+ return 0 ;
135
+ }
136
+ for (int i = 1 ; i <= 10 ; ++ i) {
137
+ if ((k * i) % 10 == num % 10 && k * i <= num) {
138
+ return i;
139
+ }
140
+ }
141
+ return - 1 ;
142
+ }
143
+ }
144
+ ```
145
+
119
146
### ** C++**
120
147
121
148
``` cpp
@@ -133,6 +160,19 @@ public:
133
160
};
134
161
```
135
162
163
+ ```cpp
164
+ class Solution {
165
+ public:
166
+ int minimumNumbers(int num, int k) {
167
+ if (!num) return 0;
168
+ for (int i = 1; i <= 10; ++i)
169
+ if ((k * i) % 10 == num % 10 && k * i <= num)
170
+ return i;
171
+ return -1;
172
+ }
173
+ };
174
+ ```
175
+
136
176
### ** Go**
137
177
138
178
``` go
@@ -150,6 +190,20 @@ func minimumNumbers(num int, k int) int {
150
190
}
151
191
```
152
192
193
+ ``` go
194
+ func minimumNumbers (num int , k int ) int {
195
+ if num == 0 {
196
+ return 0
197
+ }
198
+ for i := 1 ; i <= 10 ; i++ {
199
+ if (k*i)%10 == num%10 && k*i <= num {
200
+ return i
201
+ }
202
+ }
203
+ return -1
204
+ }
205
+ ```
206
+
153
207
### ** TypeScript**
154
208
155
209
``` ts
You can’t perform that action at this time.
0 commit comments