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:

  • 10 <= low <= high <= 10^9

class Solution {
    public List<Integer> sequentialDigits(int low, int high) {
        List<Integer> result = new ArrayList();
        String str = "123456789";
        int i, j, length = str.length(), num;
        for( i = 2; i <= length; i++) {
            for( j = 0; j <= length - i; j++) {
                 num = Integer.parseInt(str.substring(j, j + i));
                if(num > high) return result;
                if(num >= low) result.add(num);
            }
        }
        
        return result;
    }
}

Try it on Leetcode

Here, we are storing sequential format from 1 to 9 in a string. Reason to start from i = 2, the minimum sequential number we can form is 12.

1) Starting from i=2, iterate inner loop j till length-i.

2) For each j iteration, add a each digit from string,

 a) If num formed is greater than high return result

 b) If num formed is less than low, then add it to list.

3) Finally return result. 

Related Post:

Click here for April month challenges with solution and explanation

Click Follow button to receive latest updates from us instantly.

Please let us know about your views in comment section.

Like us? Help us to grow...

Help Others, Please Share..!!!!

                                                     😍..Happy Coding...😍

Comments

Popular posts from this blog

Balanced Binary Tree

First Unique Character in a String

Majority Element

Smallest Range II