Moje stare rozwiązanie, robisz dwa wektory, jeden który przechowuje wszystkie liczby, a drugi tylko zera i potem je łączysz i masz wektor z zerami na końcu. Możesz też zrobić wariancje sortowania bąbelkowego, gdzie jeśli liczba nie jest 0 to swapujesz ją na lewo i wtedy zostaną Ci zera na końcu
Odpowiedź:
#include <vector>
using namespace std;
vector<int> move_zeroes(const vector<int> &input)
{
vector<int> withoutZeros;
vector<int> justZeros;
for (int i : input)
{
if (i != 0)
{
withoutZeros.push_back(i);
}
else
{
justZeros.push_back(i);
}
}
vector<int> result = withoutZeros;
result.insert(result.end(), justZeros.begin(), justZeros.end());
return result;
}
Wyjaśnienie:
Moje stare rozwiązanie, robisz dwa wektory, jeden który przechowuje wszystkie liczby, a drugi tylko zera i potem je łączysz i masz wektor z zerami na końcu. Możesz też zrobić wariancje sortowania bąbelkowego, gdzie jeśli liczba nie jest 0 to swapujesz ją na lewo i wtedy zostaną Ci zera na końcu