Python, O(log(n)), faster than 96%
Approach:\n1. Find the largest number A consisting of all 9\'s, with A<=n.  Think of this as your cushion to pull from if any digits in B need to get bumped up.
Approach:\n1. Find the largest number A consisting of all 9\'s, with A<=n.  Think of this as your cushion to pull from if any digits in B need to get bumped up.\n2. Start with B = n-A\n3. For each digit in B, if it is 0, add 1 to that position (and correspondingly decrement A).\n\nAlso, note that the runtime result for this problem can probably be misleading.  The constraints for this problem include an extremely low upper bound (n <= 10^4), where a brute force solution of iterating over all pairs and checking for a \'0\' (typically O(n log(n)) ) can perform well.\n\n```\nimport math\n\nclass Solution:\n    def getNoZeroIntegers(self, n: int) -> List[int]:\n        if n < 10:\n            return [1,n-1]\n        \n        digits = math.floor(math.log10(n))+1\n        a = 10**(digits-1) - 1\n        b = n - a\n        b_rem = b\n        \n        for ind in range(digits-1):\n            d = b_rem%10\n            if d == 0:\n                a -= 10**ind\n                b += 10**ind\n            b_rem = (b_rem-d)//10\n                \n        return [a,b]\n\t\t\n
[]