利用递归,先设置第一位i,然后把后面一位数字所有可能的数字都找到(i+K和i-K,条件为这两个值的范围在0——9),然后找到N位以后结束
class Solution {
public:
void findNums(int num,int N,int K,vector<int>& res){
if(N==0){
res.push_back(num);
return;
}
int temp=num%10;
if(temp+K<=9){
findNums(num*10+temp+K,N-1,K,res);
}
if(temp-K>=0&&K!=0){
findNums(num*10+temp-K,N-1,K,res);
}
}
vector<int> numsSameConsecDiff(int N, int K) {
vector<int>res;
for(int i=1;i<=9;i++){
findNums(i,N-1,K,res);
}
return res;
}
};