# 283. Move Zeroes Difficulty: Easy ## Solution ```cpp= /** *** Author: R-CO *** E-mail: daniel1820kobe@gmail.com *** Date: 2020-11-05 **/ #include <cstdlib> #include <iostream> #include <vector> using namespace std; struct TestCaseStruct { vector<int> input; vector<int> expected_output; }; class Solution { public: static void moveZeroes(vector<int> &nums) { vector<int>::iterator moved_position = nums.begin(); for (auto &it : nums) { if (it != 0) { swap(*moved_position++, it); } } } }; int main(int argc, char *argv[]) { vector<TestCaseStruct> test_cases = {{{1, 0, 2, 0, 3}, {1, 2, 3, 0, 0}}}; size_t test_case_index = 0; for (auto &test_case : test_cases) { Solution::moveZeroes(test_case.input); auto is_pass = true; for (size_t i = 0; i < test_case.input.size(); ++i) { if (test_case.input[i] != test_case.expected_output[i]) { is_pass = false; break; } } if (is_pass) { cout << "Test case [" << test_case_index << "] is pass." << endl; } else { cout << "Test case [" << test_case_index << "] is fail." << endl; } ++test_case_index; } return EXIT_SUCCESS; } ``` ## Result Success Details Runtime: 4 ms, faster than 98.58% of C++ online submissions for Move Zeroes. Memory Usage: 9.4 MB, less than 9.23% of C++ online submissions for Move Zeroes. ###### tags: `LeetCode-Easy` `C++`