100% Speed, 90% Memory, C++ Solution
First, we have two numbers starting at both extremities of [1 to n - 1].\nThen, we make them go closer to the center until they both no longer contain a zero-di
First, we have two numbers starting at both extremities of [1 to n - 1].\nThen, we make them go closer to the center until they both no longer contain a zero-digit.\n\nWe can make a helper function that returns true if a number contains a zero-digit.\n```\n\tbool containZero(int n) {\n        for (int d{ 1 }; d <= n; d *= 10)\n            if (!((n / d) % 10))\n                return true;\n        return false;\n    }\n```\nThis helper function checks each digit if it\'s a zero and returns true at the first sight of a zero-digit.\n\nWe can then make our algorithm.\n```\n\tvector<int> getNoZeroIntegers(int n) {\n        int first{ 1 };\n        int second{ n - 1 };\n        \n        while (containZero(second) || containZero(first)) {\n            --second;\n            ++first;\n        }\n        \n        return {first, second};\n    }\n```\nHere, we have two numbers, starting at the extremities of [1 to n - 1].\nWe then use our helper function and a loop to continue make them go closer to the center until neither of them contain a zero-digit.\n\nWe then return an anonymous vector made up of the non-zero containing digits that add up to [n].
['C', 'C++']