LeetCode Solutions
386. Lexicographical Numbers
Time: $O(n)$ Space: $O(n)$
class Solution {
public:
vector<int> lexicalOrder(int n) {
vector<int> ans;
int curr = 1;
while (ans.size() < n) {
ans.push_back(curr);
if (curr * 10 <= n) {
curr *= 10;
} else {
while (curr % 10 == 9 || curr == n)
curr /= 10;
++curr;
}
}
return ans;
}
};
class Solution {
public List<Integer> lexicalOrder(int n) {
List<Integer> ans = new ArrayList<>();
int curr = 1;
while (ans.size() < n) {
ans.add(curr);
if (curr * 10 <= n) {
curr *= 10;
} else {
while (curr % 10 == 9 || curr == n)
curr /= 10;
++curr;
}
}
return ans;
}
}