描述
把1~n的数,按字典序存进vector中
解决
遍历,可以不断乘以10,然后倒着加1,比如,n为101,就是1,10,100,101……….这样子
class Solution {
public:
vector<int> lexicalOrder(int n) {
vector<int> res(n);
int i = 0, val = 1;
res[i++] = 1;
while (i < n)
{
if (val * 10 <= n)
{
val *= 10;
}
else
{
while (val % 10 == 9 || val == n)
val /= 10;
++val;
}
res[i++] = val;
}
return res;
}
};