Numbers With Same Consecutive Differences LeetCode solution in JavaScript

1
/**
2
* @param {number} n
3
* @param {number} k
4
* @return {number[]}
5
*/
6
var numsSameConsecDiff = function (n, k) {
7
let res = [];
8

9
const bfs = (num, i) => {
10
let queue = [];
11
queue.push(i);
12
while (queue.length) {
13
// console.log("queue is ",queue)
14
i = queue.shift();
15
if (i <= num) {
16
if (i.toString().length === n) {
17
res.push(i);
18
}
19
let last_digit = i % 10;
20

21
if (last_digit + k < 10) {
22
queue.push(i * 10 + (last_digit + k));
23
}
24
if (k > 0 && last_digit - k >= 0) {
25
queue.push(i * 10 + (last_digit - k));
26
}
27
}
28
}
29
};
30

31
let num = Math.pow(10, n) - 1;
32
for (let i = 1; i <= 9 && i < num; i++) {
33
bfs(num, i);
34
}
35
return res;
36
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0