Description
An integer has sequential digits if and only if each digit in the number is one more than the previous digit.
Return a sorted list of all the integers in the range [low, high] inclusive that have sequential digits.
Example 1:
Input: low = 100, high = 300 Output: [123,234]
Example 2:
Input: low = 1000, high = 13000 Output: [1234,2345,3456,4567,5678,6789,12345]
Constraints:
10 <= low <= high <= 10^9
Solutions
A Set was likely not necessary. Also, using BFS could have improved performance by not having to sort at the end. Since performance is already at 100%, no further optimizations were made.
Language: javascript(2026-07-13 06:41)DONE
CPU Performance100.00%
Memory Performance81.82%
/**
* @param {number} low
* @param {number} high
* @return {number[]}
*/
var sequentialDigits = function(low, high) {
const res = new Set();
const dfs = (num) => {
if (num > high) return;
if (num >= low) {
res.add(num);
}
const lastDigit = num % 10;
if (lastDigit === 9) return;
num = num * 10 + (lastDigit + 1);
dfs(num);
};
for (let i = 1; i <= 9; i++) {
dfs(i);
}
return [...res].sort((a, b) => a - b);
};