diff --git a/cs/lexicographical-numbers.cs b/cs/lexicographical-numbers.cs new file mode 100644 index 0000000..6ef86e2 --- /dev/null +++ b/cs/lexicographical-numbers.cs @@ -0,0 +1,23 @@ +public class Solution { + public IList LexicalOrder(int n) { + var numbers = new List(); + + var current = 1; + for (int i = 0; i < n; ++i) { + numbers.Add(current); + + if (current * 10 <= n) { + current *= 10; + continue; + } + + // backtrack and try next + while (current >= n || current % 10 == 9) { + current /= 10; + } + ++current; + } + + return numbers; + } +}