
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 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
Continue reading on Dev.to
Opens in a new tab


