I had an interview for a Jr. development job and he asked me to write a procedure that takes an array of ints and shoves the zeroes to the back. Here are the constraints (wh
An approach that sorts is O(N*Log2N). There is a linear solution that goes like this:
readPtr
and writePtr
, initially pointing to the beginning of the arrayreadPtr
up the array to the end. If *readPtr
is not zero, copy to *writePtr
, and advance both pointers; otherwise, advance only readPtr
.readPtr
is at the end of the array, walk writePtr
to the end of the array, while writing zeros to the remaining elements.