https://medium.com/@avrdan/leetcode-283-move-zeroes-in-c-naive-approach-optimized-solution-one-pass-in-place-cpp-8dfe38f9422c