Lexicographical Numbers

题目来源
将1-n整型数字以字典序排序。
我想着先转换为string,然后排序,然后再转为int,代码如下:

class Solution {
public:
    vector lexicalOrder(int n) {
        vector resString(n, "");
        for (int i=1; i<=n; i++)
            resString[i-1] = to_string(i);
        sort(resString.begin(), resString.end());
        vector res;
        for (auto item : resString)
            res.push_back(atoi(item.c_str()));
        return res;
    }
};

然后结果不出意料的超时了。然后我想着是不是可以用排序算法,不过自己来设定排序规则。
看了下讨论区,就是不断的找下一个元素,代码如下:

class Solution {
public:
    vector lexicalOrder(int n) {
        vector res;
        if (n < 1)
            return res;
        int cur = 1;
        res.push_back(cur);
        for (int i=1; i

你可能感兴趣的:(Lexicographical Numbers)