Cracking "Duplicate Zeros" with 0ms Runtime
Just hit that 0ms (100th percentile) milestone on LeetCode! Here is a quick breakdown of how to solve the Duplicate Zeros problem using a clean "Buffer" strategy. The Challenge Duplicate every 0 in...

Source: DEV Community
Just hit that 0ms (100th percentile) milestone on LeetCode! Here is a quick breakdown of how to solve the Duplicate Zeros problem using a clean "Buffer" strategy. The Challenge Duplicate every 0 in a fixed-length array while shifting other elements to the right. Anything pushed beyond the original array size is discarded. Example: Input: [1, 0, 2, 3, 0, 4, 5, 0] Output: [1, 0, 0, 2, 3, 0, 0, 4] The Strategy: Speed Over Space While the "ideal" interview answer is an in-place, two-pointer approach O(1) space, I used a Buffer Strategy O(n) space: The Buffer: I created a temporary vector to store the result. The Logic: Iterate through the array. If it's a 0, push two. If not, push one. The Sync: Overwrite the original array. The Code (C++) class Solution { public: void duplicateZeros(vector<int>& arr) { vector<int> res; for(int x : arr) { if(x == 0) { res.push_back(0); res.push_back(0); } else { res.push_back(x); } } // Overwrite in-place as requested (using our buffer) for