字典序排数
给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。
class Solution:
def lexicalOrder(self, n: int) -> List[int]:
ans = [0] * n
num = 1
for i in range(n):
ans[i] = num
if num * 10 n:
num //= 10
num += 1
return ans
忘了返回值不计入空间复杂度,想了半天都想不出来做法。。。 递归的解法很有启发。