Friday, February 17, 2017

Moyenne Mobile Leetcode

Version beaucoup plus simple: public class MovingAverageInSlidingWIndow int windowsize File d'attente de file d'attente int somme public MovingAverageInSlidingWIndow (int windowsize) this. windowsize windowsize this. queue nouveau LinkedList () this. sum 0 trouve la moyenne mobile après avoir inséré l'élément n dans le flux de données private double findMovingAverage (int N) if (queue. size () gt windowsize - 1) somme somme - queue. poll () queue. offer (n) somme somme n retour (double) somme queue. size () public static void main (String args) int Windowsize 3 MovingAverageInSlidingWIndow m nouveau MovingAverageInSlidingWIndow (windowsize) pour (int i 1 i lt 20 i) System. out. println (quotAfter Ajout de quot i quot à la file d'attente: Moyenne est: quot m. findMovingAverage (i)) Somme courante des éléments dans la file d'attente dans la variable globale. Ainsi, la réduction du calcul dans next () méthode. Public class MovingAverage LinkedList file d'attente int size int somme 0 maintient la somme de la file d'attente Initialiser votre structure de données ici. Public MovingAverage (int size) this. queue nouveau LinkedList () this. size taille public double next (int val) queue. offer (val) somme val if (queue. size () gtthis. size) sum - queue. poll () Étant donné un flux d'entiers et une taille de fenêtre, calculer la moyenne mobile de tous les entiers dans la fenêtre coulissante. Par exemple, MovingAverage m nouveau MovingAverage (3) m. next (1) 1 m. next (10) (1 10) 2 m. next (3) (1 10 3) 3 m. next (5) (10 3 5 ) 3 Nous pouvons utiliser une file d'attente bornée pour enregistrer les derniers n entiers dans la fenêtre et définir une variable sumN pour enregistrer la somme des nombres dans la fenêtre. Chaque fois qu'un nouveau numéro est enregistré, nous mettons à jour sumN par moins la tête de la file et ajoutez le nombre actuel. Nous supprimons également la tête de la file d'attente et ajoutons le numéro courant à la fin de la file d'attente. Voir la solution Java suivante: Moyenne mobile JavaQuestion 1 2 (Moyenne mobile) Chez Bridgewater, nous avons une philosophie de systématisation - nous construisons des plates-formes de négociation automatisées où nous pouvons rapidement réviser et améliorer nos stratégies. En tant que tel, la qualité des données devient importante pour éviter des erreurs coûteuses. Afin d'assurer l'utilisation de données précises pour les décisions commerciales, nous avons également automatisé une grande partie de la logique de validation des données. Bien qu'une vérification d'erreur (par exemple la détection de 0s dans des données qui ne contiennent que des nombres positifs) est facile, d'autres vérifications d'erreurs sont beaucoup plus difficiles (par exemple des aberrations sporadiques dans les données de tarification). La plupart des vérifications d'erreurs sont effectuées à l'aide d'algorithmes de flux, car la quantité et le rythme des données est beaucoup trop important pour analyser les données statiquement. Rédigez une fonction de moyenne mobile qui prendra la moyenne des échantillons de N en fin de données de marché. La première ligne de l'entrée sera un entier, N, qui définira la fenêtre de la fonction de moyenne mobile. Sortie de la moyenne mobile des données commençant par Nth points de données et continuant jusqu'à la fin du fichier. Vous devez utiliser 3 décimales de précision. Remarque: Votre algorithme doit traiter les informations de façon continue en tant que flux, c'est-à-dire commencer à émettre la moyenne mobile après le Nième point de données et continuer jusqu'à la fin du fichier d'entrée. Question 2 2 (Déplacement de la médiane et de la détection des erreurs) Écrivez une fonction médiane mobile qui prendra la médiane des échantillons N à la fin des échantillons de données du marché et identifiera les écarts par rapport à cette médiane qui varient Plus d'un pourcentage, P. La première ligne de l'entrée sera un entier, N, qui définira la taille de la fenêtre de la fonction médiane en mouvement, la deuxième ligne sera une décimale, P, qui définit la variation de pourcentage maximum permise dans les données . Sortie tout nombre qui dépasse cette variation de pourcentage (note: vous devriez toujours inclure ces chiffres dans votre médiane en mouvement). Vous devez utiliser 3 décimales de précision. Remarque: Votre algorithme doit traiter les informations de façon continue en tant que flux, c'est-à-dire commencer à émettre la moyenne mobile après le Nième point de données et continuer jusqu'à la fin du fichier d'entrée. Par exemple, l'entrée suivante: Doit donner la sortie: Puisque 10 et 12 varient chacun de plus de 50 de la médiane des 3 valeurs précédentes.


No comments:

Post a Comment