用遞迴的方法找到從1到最大的n位整數。
樣例 給出n = 1
, 返回[1,2,3,4,5,6,7,8,9]
.
給出n = 2
, 返回[1,2,3,4,5,6,7,8,9,10,11,...,99]
.
挑戰 用遞迴完成,而非迴圈的方式。
方法一:迴圈輸出
最大的數為10^n -1
class solution
for(int j=1; j< max; j++)
return ret;
}};
方法二:遞迴輸出(會溢位)
這種方法,最大值為多少,就遞迴多少層。當資料比較大時,導致棧溢位
class solution
return print(max);
}vectorprint(int n)
return ret;
}};
方法三: 遞迴輸出(不溢位)
遞迴使得遞迴的深度最多為n。將1-10定為一層,10-100定為一層,那麼輸入n,最多就迴圈n層。
class solution
return print(1,n); //列印從1開始的n位數
}vectorprint(int i, int n){
if( n>=1 ){ //依次將1-9,10-99,100-999放入容器內
int max = i*10;
for(int j=i; j
lintcode 用遞迴列印數字
遞迴的方法找到從1到最大的n位整數。樣例給出n 1,返回 1,2,3,4,5,6,7,8,9 給出n 2,返回 1,2,3,4,5,6,7,8,9,10,11,99 注意用下面這種方式去遞迴其實很容易 recursion i 但是這種方式會耗費很多的遞迴空間,導致堆疊溢位。你能夠用其他的方式來遞迴使...
Lintcode 用遞迴列印數字
用遞迴的方法找到從1到最大的n位整數。注意事項 用下面這種方式去遞迴其實很容易 recursion i 但是這種方式會耗費很多的遞迴空間,導致堆疊溢位。你能夠用其他的方式來遞迴使得遞迴的深度最多只有 n 層麼?樣例 給出 n 1,返回 1,2,3,4,5,6,7,8,9 給出 n 2,返回 1,2,...
LintCode 371 用遞迴列印數字
用遞迴的方法找到從1到最大的n位整數。注意事項 用下面這種方式去遞迴其實很容易 recursion i 但是這種方式會耗費很多的遞迴空間,導致堆疊溢位。你能夠用其他的方式來遞迴使得遞迴的深度最多只有 n 層麼?樣例 給出n 1,返回 1,2,3,4,5,6,7,8,9 給出n 2,返回 1,2,3,...