【劍指Offer】面試題17. 打印從1到最大的n位數

題目

輸入數字 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;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章