题目:
Given an integer n, return 1 - n in lexicographical order.
For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9].
思路:
优先将数字乘10;如果数字末位<9,考虑将数字加1。
程序:
class Solution {
public:
void solve(int m,int n,vector<int>& res)
{
res.push_back(m);
if(m * 10 <= n)
solve(m * 10,n,res);
if(m < n&&m % 10 < 9)
solve(m + 1,n,res);
}
vector<int> lexicalOrder(int n) {
vector<int> res;
solve(1,n,res);
return res;
}
};