Skip to content

Commit 4cac86d

Browse files
committed
LC 967
1 parent 9d24cd3 commit 4cac86d

File tree

1 file changed

+34
-0
lines changed
  • leetcode/967-number-with-same-consecutive-differences

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def numsSameConsecDiff(self, n: int, k: int) -> List[int]:
6+
solution = set()
7+
8+
def next_int(curr_val):
9+
if len(curr_val) == n:
10+
solution.add(int(curr_val))
11+
return
12+
prev = int(curr_val[-1])
13+
if prev + k < 10:
14+
next_int(curr_val+(str(prev+k)))
15+
if prev - k >= 0:
16+
next_int(curr_val+(str(prev-k)))
17+
18+
for i in range(1, 10):
19+
next_int(str(i))
20+
return list(solution)
21+
22+
23+
s = Solution()
24+
cases = [
25+
(3, 7, [181, 292, 707, 818, 929]),
26+
(2, 1, [10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98]),
27+
(2, 0, [11, 22, 33, 44, 55, 66, 77, 88, 99]),
28+
(2, 1, [10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98]),
29+
(2, 2, [13, 20, 24, 31, 35, 42, 46, 53, 57, 64, 68, 75, 79, 86, 97])
30+
]
31+
for n, k, expected in cases:
32+
actual = s.numsSameConsecDiff(n, k)
33+
actual, expected = sorted(actual), sorted(expected)
34+
assert actual == expected, f"{n, k}: {expected} != {actual}"

0 commit comments

Comments
 (0)