剑指offer 面试题17. 打印从1到最大的n位数 [简单]

我的解题:

先求出n位数的最大值,for循环压入vector

class Solution {
public:
    vector<int> printNumbers(int n) {
        vector<int> res;
        if(!n)  return {};
        int max=0;
        while(n--){
            max=max*10+9;
        }   
        for(int i=1;i<=max;i++)
            res.push_back(i);
        return res;
    }
};

2.计算最大值时直接乘以10就行

class Solution {
public:
    vector<int> printNumbers(int n) {
        vector<int> res;
        if(!n)  return {};
        int max=1;
        for(int i=0;i<n;i++)    max*=10;
        for(int i=1;i<max;i++)
            res.push_back(i);
        return res;
    }
};

发布了65 篇原创文章 · 获赞 1 · 访问量 477

猜你喜欢

转载自blog.csdn.net/qq_41041762/article/details/105566025