题目:
分析1:int->字符串->排序->int:
class Solution {
public:
vector<int> lexicalOrder(int n) {
vector<string> s;
for(int i=1;i<=n;i++)
{
s.push_back(to_string(i));
}
sort(s.begin(),s.end());
vector<int> v;
for(int i=0;i<n;i++)
{
v.push_back(atoi(s[i].c_str()));
}
return v;
}
};
分析2:递归:
class Solution {
public:
vector<int> v;
void f(int x,int n)
{
for(int i=0;i<10;i++)
{
if(x*10+i<=n)
{
v.push_back(x*10+i);
f(x*10+i,n);
}
else break;
}
}
vector<int> lexicalOrder(int n) {
for(int i=1;i<=9;i++)
{
if(i>n) break;
v.push_back(i);
f(i,n);
}
return v;
}
};