Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Abonnements

Quizz 7

Dans mon Quizz précédent, je propose la solution suivante :

values.Aggregate((v1, v2) => v1.TakeWhile((v, index) => v2.Count() > index && v == v2.ElementAt(index)));

Simon n'a pas dût encore lire mon commentaire sinon il m'aurait déjà dit qu'en perf ce n'était pas bon. Stick out tongue

Une des raisons qui fait que ce n'est pas bon c'est le fait que pour chaque élément de v1, je recalcule v2.Count() ce qui n'est pas utile. L'idée serait de ne le calculer qu'une seule fois avant d'itérer v1.

Comment faire cela ?

Enjoy Smile

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Publié mercredi 13 août 2008 08:05 par Matthieu MEZIL

Classé sous : , , ,

Commentaires

# re: Quizz 7 @ mercredi 13 août 2008 10:29

Ca y est j'ai pas pu m'empêcher :)

Le mieux c'est même de ne pas calculer le count des sous-enumerables, car si même un seul des sous-enumerables est grand, tu auras toujours un problème, tu devras attendre d'aller au bout avant de renvoyer le premier élément. Si derrière, c'est une base de données avec des millions d'enregistrements, c'est embêtant. C'est pour cela que j'utilise les énumerateurs dans ma proposition, pour conserver le "streaming objet", à la base de Linq/yield et compagnie. A mon avis, tu dois pouvoir faire pareil.

smo

# re: Quizz 7 @ mercredi 13 août 2008 10:42

Ok Simon, commence à chercher, ça sera le Quizz 8 Wink

Soit dit en passant ça sera super facile avec la réponse de celui-là.

Finalement, ça ne sera pas si facile que ça car je ne donnerai pas la solution à laquelle je pensais (voir plus bas).

Matthieu MEZIL

# re: Quizz 7 @ mercredi 13 août 2008 11:40

Et en plus, la solution à laquelle je pense pour le Quizz 8 est 1,5 fois plus rapide que ta solution !!!

En gros, une solution contre laquelle tu ne pourras même pas raler. Stick out tongue

Matthieu MEZIL

# re: Quizz 7 @ mercredi 13 août 2008 11:57

return values.Aggregate((v1, v2) => v1.Take(v2.Count()).TakeWhile((v, index) => v == v2.ElementAt(index) ));

Ca améliore un peu, mais c'est toujours moins rapide que la solution de Simon :-((

Sacha

# re: Quizz 7 @ mercredi 13 août 2008 12:05

Bien joué ! Wink

Ce n'est pas la solution à laquelle je pensais mais j'aime beaucoup.

Du coup je ne donne pas ma solution pour vous faire chercher pour le Quizz 8. Stick out tongue

Matthieu MEZIL

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01