分析:考虑到大数问题,我们用一个字符串表示数字, 用排列,dfs(深搜)的思想来写代码:
class Solution {
public:
vector<int> nums;
string s;
vector<int> printNumbers(int n) {
s.resize(n,'0');
dfs(0,n);
return nums;
}
void dfs(int index,int end)
{
if(index==end)
{
save();
return;
}
for(int i=0;i<=9;++i)
{
s[index]=i+'0';
dfs(index+1,end);
}
return;
}
void save()
{
int i=0,len=s.size();
while(i<len&&s[i]=='0')++i;
if(i<len)
{
nums.emplace_back(stoi(s.substr(i)));
}
return;
}
};
结果如下所示: