Problem Statement
There is nothing more beautiful than just an integer number.
You are given an integer n. Return the smallest integer greater than or equal to n that contains exactly k distinct digits in decimal notation.
Definition
- Class:
- TheInteger
- Method:
- find
- Parameters:
- long, int
- Returns:
- long
- Method signature:
- long find(long n, int k)
- (be sure your method is public)
Constraints
- n will be between 1 and 10^18, inclusive.
- k will be between 1 and 10, inclusive.
Examples
47
1
Returns: 55
Here, k is 1, so we're looking for a number whose digits are all equal. The smallest such number that is greater than or equal to 47 is 55.
7
3
Returns: 102
We need three distinct digits here.
69
2
Returns: 69
69 already consists of two different digits.
12364
3
Returns: 12411
91
1
Returns: 99
65
3
Returns: 102
45
1
Returns: 55
757148
1
Returns: 777777
301413357
5
Returns: 301413360
659598369
6
Returns: 659598373
391749388
2
Returns: 393333333
35766291
3
Returns: 35773333
473038165
7
Returns: 473038166
3615545
7
Returns: 3615702
392289611
3
Returns: 392292222
170427799
9
Returns: 170428356
675016434
1
Returns: 777777777
683447134
7
Returns: 683447135
82426873
2
Returns: 82822222
194041605
9
Returns: 194052367
100757147
1
Returns: 111111111
401413356
1
Returns: 444444444
759598368
1
Returns: 777777777
491749387
1
Returns: 555555555
135766290
1
Returns: 222222222
757148
10
Returns: 1023456789
301413357
10
Returns: 1023456789
659598369
10
Returns: 1023456789
391749388
10
Returns: 1023456789
35766291
10
Returns: 1023456789
1000000000
1
Returns: 1111111111
1
10
Returns: 1023456789
123456789
9
Returns: 123456789
987654321
9
Returns: 987654321
123456789
8
Returns: 123456791
987654321
8
Returns: 987654322
123456789
1
Returns: 222222222
987654321
1
Returns: 999999999
123456789
4
Returns: 123511111
987654321
4
Returns: 987666666
900000000
1
Returns: 999999999
800000000
1
Returns: 888888888
127087881097001
7
Returns: 127087881097003
222265603453525633
6
Returns: 222265603453525633
1915987881158338
1
Returns: 2222222222222222
12412318963025809
7
Returns: 12412318963111111
1178853313121185
1
Returns: 2222222222222222
20168685006428557
9
Returns: 20168685006428573
113770165438317571
4
Returns: 113770170000000000
100127087881097000
1
Returns: 111111111111111111
322265603453525632
2
Returns: 322322222222222222
101915987881158337
3
Returns: 101919000000000000
112412318963025808
3
Returns: 112412411111111111
101178853313121184
3
Returns: 101180000000000000
120168685006428556
1
Returns: 222222222222222222
213770165438317570
2
Returns: 220000000000000000
178312965446953072
4
Returns: 178313111111111111
237036307621633872
3
Returns: 237222222222222222
121893203319756769
3
Returns: 121911111111111111
101527830950858800
1
Returns: 111111111111111111
135267885483048960
3
Returns: 135311111111111111
139998005382895000
3
Returns: 139999111111111111
900127087881097000
1
Returns: 999999999999999999
922265603453525630
2
Returns: 922292222222222222
901915987881158337
1
Returns: 999999999999999999
912412318963025808
1
Returns: 999999999999999999
901178853313121184
1
Returns: 999999999999999999
900127087881097001
9
Returns: 900127087881097345
922265603453525633
10
Returns: 922265603453525718
901915987881158338
9
Returns: 901915987881158342
912412318963025809
9
Returns: 912412318963025809
901178853313121185
9
Returns: 901178853313121186
1000000000000000000
1
Returns: 1111111111111111111
1000000000000000000
10
Returns: 1000000000023456789
900000000000000000
1
Returns: 999999999999999999
700000000000000000
1
Returns: 777777777777777777
190000000000000000
2
Returns: 191111111111111111
159000000000000000
3
Returns: 159111111111111111
123900000000000000
4
Returns: 123911111111111111
123490000000000000
5
Returns: 123491111111111111
123459000000000000
6
Returns: 123459111111111111
123456900000000000
7
Returns: 123456911111111111
123456790000000000
8
Returns: 123456791111111111
123456789000000000
9
Returns: 123456789111111111
99265432100000001
2
Returns: 99292222222222222
98797435123423400
5
Returns: 98797437333333333
999999999999999999
2
Returns: 1000000000000000000
889999999999999210
10
Returns: 890000000001234567
999999999876543211
10
Returns: 1000000000023456789
22955375872598735
4
Returns: 22955392222222222
999999999999999999
10
Returns: 1000000000023456789
88665658757889776
4
Returns: 88665658758555555
555555555555555555
10
Returns: 555555555601234789
99999998760011229
10
Returns: 99999998760012345
9999
4
Returns: 10023
999999999999999999
8
Returns: 1000000000000234567
10000000000000000
10
Returns: 10000000023456789
3474
10
Returns: 1023456789
99999999999979099
10
Returns: 100000000023456789
999999999999999
2
Returns: 1000000000000000
999999999987654321
10
Returns: 1000000000023456789
12
10
Returns: 1023456789
123456789000000
1
Returns: 222222222222222
876543210988888888
9
Returns: 876543211000000000
1000000000000000000
6
Returns: 1000000000000002345
99990123456789999
7
Returns: 99990123459000000
361527451634812
9
Returns: 361527451634819
1000000000000000000
9
Returns: 1000000000002345678
110329309478923384
4
Returns: 110330000000000002
2222244445555
10
Returns: 2222301456789
98765111111111111
5
Returns: 98765555555555555
123456789
10
Returns: 1023456789
9999999999999999
2
Returns: 10000000000000000
91389808875290400
3
Returns: 91391111111111111
999999
3
Returns: 1000002
1099999999
10
Returns: 1203456789
8888888888888888
6
Returns: 8888888888890123
9876543211
10
Returns: 10023456789
923456789123456789
1
Returns: 999999999999999999
999999999999999999
7
Returns: 1000000000000023456
9
1
Returns: 9
999999999901234567
10
Returns: 1000000000023456789
89999999999999998
10
Returns: 90000000012345678
336427781
1
Returns: 444444444
99
2
Returns: 100
999999999999999999
5
Returns: 1000000000000000234
11111111111111111
10
Returns: 11111111203456789
99999
5
Returns: 100234