INPUT : [3,3,3,2,2,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]
groupe dupliquer les objets dans vector - C++
OUTPUT : [[3,3,3],[2,2,2],[1,1,1,1,1],[0,0,0,0,0,0,0,0,0,0]]
l'entrée est un vecteur d'entiers tandis que la sortie est un vecteur de vecteurs de ints. Le but est de le faire de la manière la plus efficace possible en termes de temps.
La solution que je suis actuellement en utilisant est la suivante:
vector<vector<int> results;
vector<int> result;
for(int i = 0 ; i < list.size() - 1 ; i++){
result.push_back(list[i]);
if (list[i] != list[i+1]){
results.push_back(result);
result.clear();
}
}
result.push_back(list[list.size()-1]);
results.push_back(result);
- crédit: @kabanus
Bienvenue sur stackoverflow.com. Veuillez prendre le temps de lire [les pages d'aide] (http://stackoverflow.com/help), en particulier les sections intitulées ["Quels sujets puis-je poser à propos d'ici?"] (Http://stackoverflow.com/help/ sur le sujet) et ["Quels types de questions devrais-je éviter de poser?"] (http://stackoverflow.com/help/dont-ask). Aussi s'il vous plaît [prendre la visite] (http://stackoverflow.com/tour) et [lire sur la façon de poser de bonnes questions] (http://stackoverflow.com/help/how-to-ask). Enfin, apprenez comment créer un [Exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve). –
Tout algorithme de travail simple sera probablement assez proche du plus efficace. – aschepler
Si vous n'avez rien, le plus efficace est vraiment tout ce qui fonctionne. Ecrire quelque chose qui fonctionne, seulement alors commencer à penser à l'efficacité. – user463035818