Sequential Digits

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:


Solution:

class Solution {
    public List<Integer> sequentialDigits(int low, int high) {
        int minLen = String.valueOf(low).length();
        int maxLen = String.valueOf(high).length();
        List<Integer> result = new ArrayList();
        for (int len = minLen; len <= maxLen; len ++) {
            for (int start = 1; start + len <= 10; start ++) {
                int curr = start;
                for (int i = 1; i < len; i ++) {
                    curr = curr * 10 + (start + i);
                }
                if (curr >= low && curr <= high) {
                    result.add(curr);
                }
            }
        }
        return result;
    }
}