題目
輸入數字 n,按順序打印出從 1 到最大的 n 位十進制數。比如輸入 3,則打印出 1、2、3 一直到最大的 3 位數 999。
示例 1:
輸入: n = 1
輸出: [1,2,3,4,5,6,7,8,9]
說明:
- 用返回一個整數列表來代替打印
- n 爲正整數
解題思路
1、針對本題的常規思路,利用pow函數,秒解
2、假設可能出現大數(本題不可能),轉換爲大數問題求解
本題自己對於大數解法,分別練習了使用char和string兩種方式分別進行求解
通過使用char數組進行求解
通過使用string進行求解
3、遞歸求解
代碼
針對本題的簡單解法
class Solution {
public:
vector<int> printNumbers(int n) {
vector<int> res;
int max = pow(10, n);
for (int i = 1; i < max; ++i) {
res.push_back(i);
}
return res;
}
};