1 class Solution: 2 def sequentialDigits(self, low: int, high: int) -> 'List[int]': 3 lists = ['1','2','3','4','5','6','7','8','9'] 4 res = [] 5 for i in range(9): 6 for length in range(1,10): 7 j = i + length 8 sub = ''.join(lists[i:j]) 9 integer = int(sub) 10 if integer >= low and integer <= high: 11 res.append(integer) 12 elif integer > high: 13 break 14 if j >= 9: 15 break 16 res.sort() 17 return res
按照从小到大的顺序生成递增序列,每生成一个序列,判断是否在限定区间内。
如果超过了区间的上限,则跳过本轮循环(因为后面的值会更大)。