Ich versuche, ein Min-Max eines bewegten Fensters mit Hilfe von Warteschlangen zu finden. Ich konnte eine Lösung schaffen, aber das fühlt sich sehr langsam an.Minimum und Maximum des beweglichen Fensters, bessere Implementierung?
Hier ist meine Lösung:
def min_max(value:T, windowSize: Int):(T,T) = {
val queue = new scala.collection.mutable.Queue[A]() //I added the creation of this queue here for you to see
if(queue.size == windowSize) queue.dequeue
queue.enqueue(value)
var min = queue.head
var max = queue.head
for(i <- queue) {
if(i<min) min = i
if(i>max) max = i
}
(min, max) // returns the min and max in a tuple
}